主要作用
設定參數
環境
變數相當於給系統或用戶
應用程式設定的一些參數,具體起什麼作用這當然和具體的環境變數相關。比如path,是告訴系統,當要求系統運行一個程式而沒有告訴它程式所在的完整路徑時,系統除了在
當前目錄下面尋找此程式外,還應到哪些目錄下去尋找;再如tc或vc++中,set include=path1;path2; 是告訴
編譯程式到哪裡去找.h類型的檔案;當然不僅僅是指定什麼路徑,還有其它的作用的,如set dircmd=/4 設定一個環境變數的作用是在使用dir
命令時會把/4作為預設的參數添加到你的dir命令之後,就像你的每個命令都加了/4參數,它實際上是給命令
解釋程式command設定的一個環境變數,並且是給dir這個
內部命令設定的。
DWORD
GetEnvironmentVariable(LPCSTR lpName, LPSTR lpBuffer, DWORD dSize),參數lpName是你要求查詢的環境
變數的名,lpBuffer是返回你所指定的環境變數的值的,dSize是告訴這個
函式lpBuffer可以存放多少個位元組。
分析本地故障時原因很可能就是因為環境
變數中的默認路徑被刪除的結果,默認路徑一經設定,當前系統如有
程式運行時需要某些DLL或EXE檔案,以及Active控制項時就會到所有默認路徑中去查找,如果在這些
目錄中查找到相應的程式則自動載入,查找不到則報告缺少某某檔案的
錯誤信息。
軟體共用
很多朋友會在自己的
計算機上安裝雙系統,例如C糟安裝Windows XP,D糟安裝Windows 7。可是某些
軟體往往只在Windows XP系統中安裝,Windows 7系統中是無法正常使用的,比較麻煩卻有效的方法是再安裝一遍。當我們了解了環境
變數中的用途後就可以很好解決雙系統的
軟體共用問題。
系統運行
為什麼在Windows XP中安裝了的
軟體在Windows 7下無法運行呢(
綠色軟體除外)?原因是安裝軟體時往往須要向系統
目錄中複製某些檔案,而使用另外一個系統時會由於缺少這些檔案而無法運行。因此,我們可以通過設定環境
變數的方法來解決這個問題。
常見環境變數
WINDOWS系統
%ALLUSERSPROFILE% 局部 返回所有“
用戶配置檔案”的位置。
%APPDATA% 局部 返回默認
情況下
應用程式存儲數據的位置。
%CMDCMDLINE% 局部 返回用來啟動當前的 Cmd.exe 的準確
命令行。
%CMDEXTVERSION% 系統 返回當前的“
命令處理
程式擴展”的版本號。
%COMPUTERNAME% 系統 返回
計算機的名稱。
%DATE% 系統 返回當前
日期。使用與 date /t
命令相同的格式。由 Cmd.exe 生成。有關 date
命令的詳細信息,請參閱 Date。
%ERRORLEVEL% 系統 返回使用過的
命令的
錯誤代碼。通常用非零值表示錯誤。
%HOMEDRIVE% 系統 返回連線到用戶主
目錄的本地工作站驅動器號。基於主
目錄值的設定。用戶主
目錄是在“本地用戶和組”中指定的。
%HOMESHARE% 系統 返回用戶的共享主
目錄的網路路徑。基於主
目錄值的設定。用戶主
目錄是在“本地用戶和組”中指定的。
%LOGONSEVER% 局部 返回驗證當前登錄會話的
域控制器的名稱。
%NUMBER_OF_PROCESSORS% 系統 指定安裝在
計算機上的處理器的數目。
%OS% 系統 返回
作業系統的名稱。Windows 2000 將
作業系統顯示為 Windows_NT。
%PROCESSOR_ARCHITECTURE% 系統 返回處理器的晶片體系結構。值: x86,IA64。
%PROCESSOR_IDENTIFIER% 系統 返回處理器說明。
%PROCESSOR_LEVEL% 系統 返回
計算機上安裝的處理器的型號。
%PROCESSOR_REVISION% 系統 返回處理器修訂號的
系統變數。
%RANDOM% 系統 返回 0 到 32767 之間的任意
十進制數字。由 Cmd.exe 生成。
%SYSTEMDRIVE% 系統 返回包含 Windows XP 根
目錄(即系統根目錄)的
驅動器。
%SYSTEMROOT% 系統 返回 Windows XP 根
目錄的位置。
%TEMP% and %TMP% 系統和用戶 返回對當前登錄用戶可用的
應用程式所使用的默認臨時
目錄。有些
應用程式需要 TEMP,而其它應用程式則需要 TMP。
%TIME% 系統 返回當前時間。使用與 time /t 命令相同的格式。由 Cmd.exe 生成。有關 time
命令的詳細信息,請參閱 Time。
%USERDOMAIN% 局部 返回包含
用戶帳戶的域的名稱。
%USERNAME% 局部 返回當前登錄的用戶的名稱。
%UserProfile% 局部 返回當前用戶的配置檔案的位置。
Linux系統
shell環境依賴於多個檔案的設定。當shell被調用時,它從兩個初始檔案讀取
命令。/etc/profile包含了
系統變數,它由
系統管理員維護,由系統管理員設定本地系統變數和特殊
命令。普通用戶的啟動
信息檔案($HOME/.bash_project)由各用戶自己維護,該檔案可以被修改以實現任何特定的
系統初始化。
只有在特定的
情況下才讀取profile檔案,確切的說是在用戶登入的時候。當運行shell腳本或subshell以後,就無須再讀profile.雖然所有profile都可選的,但是基本上所有系統都有/etc/profile.
如果定義了
變數ENV且已經傳遞到環境中,則所有的bash shell都要讀取並調用由這個變數制定的檔案所包含的
命令。這個檔案用來定義所有bash shell的特徵,而不僅僅是登入到shell。這個檔案的典型的名字是$HOME/,bashrc。
當用(
系統管理員)新建用戶時,.bash_profile、bashrc和其他公共的環境檔案模板將複製到/etc/skel這個
目錄下面。可以編輯這些初始化設定,也可以在此
目錄下添加附加的檔案。
Example:
一個典型的系統profile(/etc/profile):
PATH=$PATH:/usr/qa/tools/bin
ENV==$HOME/.bashrc
ORACLE_SID=qadb
Export PATH ENV ORACLE_HOME ORCAL_SID
Cat /etc/motd
一個典型的用戶profile(.bashrc)
PATH=$PATH:$HOME/bin
TEAM=uvt1224 export TERM
cal
一個典型的用戶 bashrc file (.bashrc):
alias dir=ls lf='ls -FC'
PSI='$PWS[!]>'
set -o vi
別名和其他bash專用的定義應該放在.bashrc檔案(不應在.bash_profile) 中定義;否則會導致找不到某些
命令。
應該記住profile檔案和.bashrc檔案的區別:兩個profile都只在系統啟動時被讀取一次,而.bashrc在系統啟動和每次調用shell的時候都要被讀取。
設定方法
在windows
作業系統中可以通過
我的電腦-〉系統屬性-〉高級系統設定->環境變數,來設定系統的環境
變數,然而在此設定的環境變數是否在註冊表中具有對應的項呢?答案是肯定的。而在.net 中提供了一個類來獲取系統的環境
變數及其值。
環境
變數分為兩類:用戶變數與
系統變數,在註冊表中都有對應的項。
\Control\Session Manager\Environment。
另外也可以右擊
我的電腦——高級系統設定——環境
變數——在
系統變數里有path選項——雙擊打開——在原有變數的基礎上添加英文狀態下的分號——然後將路徑名輸入即可。(切記,不要刪除原先的
系統變數,只要用分號隔開,然後添加,最後也要加上分號)
編輯方法
在命令行中對環境變數進行編輯的方法
set
set PATH
set xxx=aa
set xxx=
在某個環境
變數(如PATH)後添加新的值(如d:\xxx)
set PATH=%PATH%;d:\xxx
(註:在dos視窗中以
命令行方式對環境
變數的操作只對當前視窗的套用有效)