1. 程式人生 > >win環境變量path因第三方軟件導致不一致的問題分析

win環境變量path因第三方軟件導致不一致的問題分析

logs ahk 修改 方式 path環境變量 one 路徑 重新 存在

win環境變量因第三方軟件導致path不一致的問題分析

win系統中,(以win10為例),path環境變量起到了非常重要的作用,配置不當,會導致在命令行中出現“不是內部命令or外部命令”的提示。
win10中path值有兩個:一個是系統變量path和用戶變量path,下面我們通過幾個途徑查看path的值,結果如下:

通常情況下, 當一個用戶登陸系統後: path是該用戶自己的用戶變量path和系統變量path的並集。

方式1

當該用戶通過win+R,輸入命令cmd的方式進入系統自帶的命令行環境中後,輸入
echo %PATH%
,此時輸出的path的值也是用戶變量path和系統變量path的並集,並且系統變量位置在前,用戶變量位置在後。

方式2

當該用戶通過win+R,輸入命令cmder的方式進入第三方命令行軟件cmder中後,輸入
echo %PATH%
,此時輸出的path的值中,除了用戶變量path和系統變量path之外,還有cmder軟件添加的path內容(順序:cmder自身的,系統的,用戶的):

//cmder添加的行
D:\cmder\bin;  
D:\cmder\vendor\conemu-maximus5\ConEmu\Scripts;  
D:\cmder\vendor\conemu-maximus5;    
D:\cmder\vendor\conemu-maximus5\ConEmu;     
系統變量path
用戶變量path

備註:path裏面cmder自身的變量所在順序是由cmder定義的,但是系統變量和用戶變量兩者之前的順序基本上不能更改。

方式3

當該用戶通過AHK軟件配置的快捷鍵(2017.5.15日編譯好的AhkScriptManager.exe文件),啟動第三方命令行軟件cmder後,輸入
echo %PATH%
,此時輸出的path的值中,除了用戶變量path和系統變量path之外,還有cmder軟件添加的path內容,最後還有AHK自己添加的path:

//cmder添加的行
D:\cmder\bin;  
D:\cmder\vendor\conemu-maximus5\ConEmu\Scripts;  
D:\cmder\vendor\conemu-maximus5;    
D:\cmder\vendor\conemu-maximus5\ConEmu; 
//AHK添加的行
D:\AhkScriptManager\3rd; 
//丟失了部分近期安裝的軟件的路徑
系統變量path
用戶變量path

備註:我使用的AhkScriptManager是基於github上的開源項目https://github.com/morgengc/AhkScriptManager。
但是在今天(2017.11.18日文件)通過AHK提供的快捷鍵進入cmder後,運行python的時候發現,找不到python命令,所以才有了這篇文章。

方式4

經過分析後,懷疑原因在於,AhkScriptManager.exe文件是在很久之前用AHK軟件編譯好的。path值在編譯AhkScriptManager.ahk文件後,已經固定了,所以之後安裝的python等軟件的路徑就無法加入了。於是我由重新編譯了AhkScriptManager.ahk文件。
當該用戶通過現在時間(2017.11.18日文件)重新編譯AhkScriptManager.ahk文件,得到新的AhkScriptManager.exe文件,此時的AHK軟件配置的快捷鍵,啟動第三方命令行軟件cmder後,輸入
echo %PATH%
,此時輸出的path的值中,方式3總的所有值之外,近期安裝的幾個軟件的路徑也都在這個path裏面了:

//cmder添加的行
D:\cmder\bin;  
D:\cmder\vendor\conemu-maximus5\ConEmu\Scripts;  
D:\cmder\vendor\conemu-maximus5;    
D:\cmder\vendor\conemu-maximus5\ConEmu; 
//AHK添加的行
D:\AhkScriptManager\3rd; 
//丟失了部分近期安裝的軟件的路徑
系統變量path
用戶變量path

總結經驗

以後再安裝軟件後,如果想通過AHK軟件提供的快捷鍵方式啟動,就必須重新編譯該AhkScriptManager.ahk文件(因為這個ahk文件中,存在path值修改的問題)

win環境變量path因第三方軟件導致不一致的問題分析