傳統(tǒng)的控制臺一般沒有象Powershell這么高級的變量系統(tǒng)。它們都是依賴于機器本身的環(huán)境變量,進行操作 。環(huán)境變量對于powershell顯得很重要,因為它涵蓋了許多操作系統(tǒng)的細節(jié)信息。此外,powershell中的變量只存在于powershell內(nèi)部的會話中,一旦powershell關(guān)閉,這些變量就會自生自滅。但是如果環(huán)境變量被更新了,它會繼續(xù)保存在操作系統(tǒng)中,即使其它程序也可以調(diào)用它。
讀取特殊的環(huán)境變量
通過環(huán)境變量讀取Windows操作系統(tǒng)的安裝路徑,和默認應(yīng)用程序的安裝路徑。
PS> $env:windirC:/WindowsPS> $env:ProgramFilesC:/Program Files
通過$env:,這就提示powershell忽略基本的variable:驅(qū)動器,而是去環(huán)境變量env:驅(qū)動器中尋找變量。為了和其它變量保持一致,powershell環(huán)境變量也可以象其它變量那樣使用。比如你可以把它插入到文本中。
PS> "My computer name $env:COMPUTERNAME"My computer name MYHome-test-01
查找環(huán)境變量
Powershell把所有環(huán)境變量的記錄保存在env: 虛擬驅(qū)動中,因此可以列出所有環(huán)境變量 。一旦查出環(huán)境變量的名字就可以使用$env:name 訪問了。
PS> ls env:Name Value---- -----ALLUSERSPROFILE C:/ProgramDataAPPDATA C:/User/sv-test/Home/AppData/RoamingCommonProgramFiles C:/Program Files/Common FilesCOMPUTERNAME MYHome-test-01ComSpec C:/Windows/system32/cmd.exeFP_NO_HOST_CHECK NOHOMEDRIVE C:HOMEPATH Users/v-test/Home
創(chuàng)建新的環(huán)境變量
創(chuàng)建新環(huán)境變量的方法和創(chuàng)建其它變量一樣,只需要指定env:虛擬驅(qū)動器即可
PS> $env:TestVar1="This is my environment variable"PS> $env:TestVar2="Hollow, environment variable"PS> ls env:Test*Name Value---- -----TestVar1 This is my environment variableTestVar2 Hollow, environment variable
刪除和更新環(huán)境變量
在powershell刪除和更新環(huán)境變量和常規(guī)變量一樣。例如要刪除環(huán)境變量中的 windir,
PS> del env:windirPS> $env:windirPS>
可以更新環(huán)境變量$env:OS 為linux redhat。
PS> $env:OSWindows_NTPS> $env:OS="Redhat Linux"PS> $env:OSRedhat Linux
這樣直接操作環(huán)境變量,會不會不安全?事實上很安全,因為$env:中的環(huán)境變量只是機器環(huán)境變量的一個副本,即使你更改了它,下一次重新打開時,又會恢復(fù)如初。(.NET方法更新環(huán)境變量除外)
我們可以將受信任的文件夾列表追加到環(huán)境變量的末尾,這樣就可以直接通過相對路徑執(zhí)行這些文件下的文件或者腳本,甚至省略擴展名都可以。
|
新聞熱點
疑難解答
圖片精選