環境變數(Environment Variable) | 命令列及環境變數教學
文章推薦指數: 80 %
環境變數(Environment Variable). Windows. 環境變數的概念對一般沒接觸過程式的人來說比較難理解一點。
簡單來說,變數就是一個容器,裝著某些資料,而環境變數則是 ...
命令列及環境變數教學
介紹
1.
命令列(CommandLine)
2.
環境變數(EnvironmentVariable)
PoweredbyGitBook
命令列及環境變數教學
環境變數(EnvironmentVariable)
Windows
環境變數的概念對一般沒接觸過程式的人來說比較難理解一點。
簡單來說,變數就是一個容器,裝著某些資料,而環境變數則是無時無刻都存在系統的背景環境中的一個容器,可以讓我們去存取裝在容器裡面的資料。
Windows系統內建了許多環境變數,可以透過直接下達指令set列出所有的環境變數:
直接下達set指令會列出所有的環境變數,而我們也可以拿這個指令來新增或修改環境變數。
新增環境變數
setx=123
這樣表示我們設定了一個名稱叫做x的環境變數,而它的內容是123。
如果要顯示出來,可以一樣透過執行set觀察,或者使用echo指令印出該變數的內容:
setx
echo%x%
在Windows的命令提示字元中,如果要使用echo印出變數,必須將變數名稱前後加上%才可以正確列印出x裡面的數值123,而不是只有印出x這個字,請自己試試看echox和echo%x%的差別。
修改環境變數
修改環境變數的方式和新增環境變數是一樣的,如果環境變數的名稱已存在,則會被修改成新的內容。
setx=456
刪除環境變數
setx=
等號後面不要加上任何東西,就可以刪除該環境變數。
系統環境變數
以上所介紹的環境變數操作方式,只要將「命令提示字元」程式關閉後,該環境變數就會消失,每次關掉程式後都必須重新設定,所以一般而言我們如果需要它長久常駐於系統中而且重新開機後也會存在的話,必須要在另外的地方設定:
控制台\系統及安全性\系統
進階系統設定
環境變數
上方「使用者變數」顯示的是目前登入使用者的獨立設定,下方「系統變數」為整體系統的設定(所有的使用者都會套用這個設定)。
左邊的是變數名稱,右邊的是變數的值(內容),所有的環境變數都可以在這邊做新增、修改、刪除。
系統預設的環境變數很多,我們暫時不需要一一去了解它的用途,只要知道有些軟體安裝或執行的時後會去修改或讀取這裡的數值即可。
如果「使用者的變數」和「系統變數」如果都存在同樣名稱的變數(例如:Path),則兩者的內容都會同時套用(重疊)。
這樣有時候會造成系統判斷優先順序的問題,建議可以把上面的「使用者變數」的Path刪除,之後修改或使用都以「系統變數」的Path為主。
PATH環境變數
環境變數中比較重要的就是PATH。
它代表著「系統要到哪些路徑底下找執行檔」。
使用指令echo%PATH%把PATH環境變數顯示出來,會發現內容全部都是路徑,每個路徑之間又用分號;隔開。
MicrosoftWindows[版本6.1.7601]
Copyright(c)2009MicrosoftCorporation.Allrightsreserved.
C:\Users\user>echo%path%
C:\ProgramFiles\Java\jdk1.8.0_66\bin;C:\Users\user\AppData\Local\Android\sdk\platform-tools;C:\Users\user\AppData\Local
\Android\sdk\tools;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C
:\ProgramFiles\Git\cmd;C:\ProgramFiles\nodejs\;C:\Users\user\node_modules\.bin;C:\gradle\bin
C:\Users\user>
當您在命令列下達指令時(例如:dir),系統會把您輸入的字串(dir)拿去和PATH內的路徑一一做比對,如果有找到,就會把那個找到的檔案當作執行檔來執行您所下達的命令。
一般來說每個獨立的軟體都至少會有一個「執行檔」,讓使用者去呼叫使用,例如dir或mkdir這些都是執行檔,只是這些是屬於系統內建的軟體。
如果我們需要安裝額外的軟體,像是開發工具通常需要設定PATH環境變數。
如果沒有把軟體本身「可執行檔的路徑」設定在PATH環境變數中的話,則每次執行該命令必須使用以下兩種方式:
到該程式所在的執行檔目錄底下執行
輸入執行檔的完整路徑
例如:
平常大家常用到的JAVA,基本上它的執行檔java.exe是對應到以下這個路徑
C:\ProgramData\Oracle\Java\javapath\java.exe
預設的情況下,安裝好Java後,在任何一個目錄底下都可以正常執行java這個執行檔。
(例如C:\底下,或者家目錄C:\Users\user底下)
C:\>java-version
javaversion"1.8.0_66"
Java(TM)SERuntimeEnvironment(build1.8.0_66-b17)
JavaHotSpot(TM)64-BitServerVM(build25.66-b17,mixedmode)
C:\>cdC:\Users\user
C:\Users\user>java-version
javaversion"1.8.0_66"
Java(TM)SERuntimeEnvironment(build1.8.0_66-b17)
JavaHotSpot(TM)64-BitServerVM(build25.66-b17,mixedmode)
java命令都可以正常執行是因為Java在安裝的時候,安裝程式自動幫您把它執行檔的所在路徑加入了PATH環境變數,如果您手動把這段路徑從PATH內刪除的話,然後重新開啟「命令提示字元」後再執行java,此時就會出現錯誤訊息:
C:\Users\user>java
'java'不是內部或外部命令、可執行的程式或批次檔。
若沒有把程式路徑加入PATH卻又想要呼叫該程式,則必須輸入執行檔的完整路徑,例如:
C:\ProgramData\Oracle\Java\javapath\java.exe-version
但一般來說我們都不希望以這樣子方式去下達命令,因為路徑時在太長了!
所以我們會把「執行檔的路徑」加入PATH中,方便日後每一次呼叫程式使用。
通常開發工具都會需要用到命令列,所以在安裝完開發工具後,要確保開發工具的執行檔路徑都有加入PATH環境變數,方便我們日後使用。
P.S.不是每一個軟體安裝後都需要做這個動作,只有需要在命令列(CommandLine)底下會用到的執行檔才需要將該路徑加入PATH(通常都是開發工具)
延伸文章資訊
- 1windows 使用者變數和系統變數的區別 - 程式人生
系統變數:與windows作業系統包括網路狀況有關,由作業系統定義。Administrators組的使用者可以新增新增、修改或刪除。 使用者變數:由作業系統、某些應用 ...
- 2Windows 使用者環境變數 - iT 邦幫忙
沒辦法放在系統的環境變數, 因為會變成C:\Windows\system32\config\systemprofile · 有第三方程式要使用AAA 這個環境變數,可是他的安裝程式沒把這個參數寫...
- 3windows系統環境變數和使用者環境變數的區別 - 程式前沿
區別: 環境變數分為系統環境變數和使用者環境變數。環境變數是指系統環境變數,對所有使用者起作用,而使用者環境變數只對當前使用者起作用。
- 4環境變數(Environment Variable) | 命令列及環境變數教學
環境變數(Environment Variable). Windows. 環境變數的概念對一般沒接觸過程式的人來說比較難理解一點。 簡單來說,變數就是一個容器,裝著某些資料,而環境變數則是 ...
- 5windows 使用者變數和系統變數的區別-技術 - 拾貝文庫網
系統變數:與windows作業系統包括網路狀況有關,由作業系統定義。Administrators組的使用者可以新增新增、修改或刪除。 使用者變數:由作業系統、某些應用程式以及使用者 ...