1. 程式人生 > >對於計算機環境變數的理解

對於計算機環境變數的理解

1,認識環境變數

  所謂Windows環境變數,指的是Windows指定作業系統工作環境的一些設定選項或屬性引數,例如指定系統資料夾或臨時資料夾的位置等。與常量相比,一個環境變數往往由變數名稱和變數值組成,環境變數名稱和數值設定時,不要含有空格,也不要用中文,變數值可以重新賦值,而常量值一直是固定不變的。例如,使用Path變數可以設定Windows系統查詢檔案的路徑,使用Windir變數可以設定系統資料夾路徑,使用ComSpec變數可以設定“cmd.exe”命令的路徑等。

在Windows工作環境中,環境變數包含系統變數和使用者變數。在環境變數設定框中,要是當前是以“zhangsan”賬號登入系統的,那麼該對話方塊上面為“zhangsan”的使用者變數,例如我是以“LHK”這個使用者名稱登入系統的,環境變數對話方塊上面的顯示就是“LHK”的使用者變數

2,環境變數設定與不設定的區別

計算機在執行命令的時候是在環境變數找對應的命令的位置的。如果不正確設定環境變數就不能正確使用相應的命令
     比如說你要執行 java 命令,你不設定環境變數path包括你的jdk安裝路徑,那系統去哪找你的java.exe檔案。或者直接用cd命令切換到java所在的檔案下,執行命令就可以了。
如果執行某個命令,系統無法在當前資料夾裡找到對應的.exe,那麼系統就會去path包含的路徑找挨個找看是否能知道對應的.exe,一旦找到第一個對應的.exe就執行命令,其他的路徑下就不找了。如果找不到你就會看到“系統找不到某某命令”的提示。

3,系統變數和使用者變數存在同名環境變數計算機怎麼處理的

有時,在系統變數和使用者變數中,同時存在某個同名環境變數,那麼該變數的值究竟是系統變數中的值還是使用者變數中的值呢?其實都不是,該變數的值應該是系統變數值與使用者變數值的疊加,嚴格來講,搜尋時是先搜尋系統變數的值,然後搜尋使用者變數的值。例如,我們在使用者變數中新建一個變數Path,它的值為“E:\Public”(不包括雙引號),注意系統變數中系統已經預定義了一個Path變數,所以現在環境變數中有兩個Path變數,一個是使用者變數,一個系統變數。以管理員身份執行cmd,必須是以管理員身份執行,在cmd中輸入Path命令,就會顯示如下內容:

注意:這裡我用的系統是win8.1專業版,並假設系統變數Path以前未被更改過。我做這個實驗主要是想說明:當用戶變數和系統變數同名時,使用者變數的值不會覆蓋系統變數的值。可能有人誤認為系統變數相當於程式設計中的全域性變數,使用者變數詳單與程式設計中的區域性變數,所以當用戶變數和系統變數同名時,使用者變數的值會覆蓋系統變數的值。切記,這裡和程式語言中的全域性變數和區域性變數是不同的。

4,管理環境變數

  設定環境變數時,可以有兩種方式,一種是進入DOS介面進行設定,另外一種是開啟系統屬性對話方塊,切換到高階選項設定頁面,按下“環境變數”按鈕,切換到環境變數對話方塊中進行設定。

          要提醒大家的是,前面一種設定方式僅對當前工作視窗有效,一旦關閉當前視窗後,環境變數設定就不生效了,而後面一種設定方式則是始終有效。

  如果要檢視當前狀態下Windows系統包含哪些系統變數和使用者變數時,可以在命令提示符下執行“set”命令,從返回的結果介面中,就能直觀地檢視到所有環境變量了。我的系統返回的結果如下圖所示:

如果要檢視某個特定環境變數數值時,可以在DOS命令列中執行“set xxx”命令(其中“xxx”為具體的變數名稱),例如,要檢視path變數數值時,可以執行“set JAVA_HOME”命令,下圖是執行結果:

如果要建立新的環境變數,例如要建立一個名為xxx、值為yyy的環境變數時,可以輸入“set xxx=yyy”命令並回車即可。而要將某個已經存在的環境變數刪除時,例如,要刪除xxx環境變數時,只要在命令列中執行“set xxx=”命令即可,這裡的“=”後面千萬不能有空格。

5,環境變數的%%作用

%%可以呼叫windows系統的其它環境變數,使你定義的變數更直觀,使用 %變數名%來呼叫
比如你定義了一個環境變數JAVA_HOME=C:\java\bin作為java的執行目錄
那麼你在其它環境變數裡面要用到%JAVA_HOME%來代替C:\java\bin
path的作用就是你在path裡面定義了一個目錄,在命令列裡面不用輸出完整的目錄名,直接輸入可執行程式檔名就可以執行了,輸入命令的時候,系統會在path定義的目錄下面去尋找輸入的命令。