Windows Powershell 環(huán)境變量
傳統(tǒng)的控制臺(tái)一般沒(méi)有象Powershell這么高級(jí)的變量系統(tǒng)。它們都是依賴(lài)于機(jī)器本身的環(huán)境變量,進(jìn)行操作 。環(huán)境變量對(duì)于powershell顯得很重要,因?yàn)樗w了許多操作系統(tǒng)的細(xì)節(jié)信息。此外,powershell中的變量只存在于powershell內(nèi)部的會(huì)話(huà)中,一旦powershell關(guān)閉,這些變量就會(huì)自生自滅。但是如果環(huán)境變量被更新了,它會(huì)繼續(xù)保存在操作系統(tǒng)中,即使其它程序也可以調(diào)用它。
讀取特殊的環(huán)境變量
通過(guò)環(huán)境變量讀取Windows操作系統(tǒng)的安裝路徑,和默認(rèn)應(yīng)用程序的安裝路徑。
PS> $env:windir C:\Windows PS> $env:ProgramFiles C:\Program Files
通過(guò)$env:,這就提示powershell忽略基本的variable:驅(qū)動(dòng)器,而是去環(huán)境變量env:驅(qū)動(dòng)器中尋找變量。為了和其它變量保持一致,powershell環(huán)境變量也可以象其它變量那樣使用。比如你可以把它插入到文本中。
PS> "My computer name $env:COMPUTERNAME" My computer name MYHome-test-01
查找環(huán)境變量
Powershell把所有環(huán)境變量的記錄保存在env: 虛擬驅(qū)動(dòng)中,因此可以列出所有環(huán)境變量 。一旦查出環(huán)境變量的名字就可以使用$env:name 訪(fǎng)問(wèn)了。
PS> ls env: Name Value ---- ----- ALLUSERSPROFILE C:\ProgramData APPDATA C:\User\sv-test\Home\AppData\Roaming CommonProgramFiles C:\Program Files\Common Files COMPUTERNAME MYHome-test-01 ComSpec C:\Windows\system32\cmd.exe FP_NO_HOST_CHECK NO HOMEDRIVE C: HOMEPATH Users\v-test\Home
創(chuàng)建新的環(huán)境變量
創(chuàng)建新環(huán)境變量的方法和創(chuàng)建其它變量一樣,只需要指定env:虛擬驅(qū)動(dòng)器即可
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 variable TestVar2 Hollow, environment variable
刪除和更新環(huán)境變量
在powershell刪除和更新環(huán)境變量和常規(guī)變量一樣。例如要?jiǎng)h除環(huán)境變量中的 windir,
PS> del env:windir PS> $env:windir PS>
可以更新環(huán)境變量$env:OS 為linux redhat。
PS> $env:OS Windows_NT PS> $env:OS="Redhat Linux" PS> $env:OS Redhat Linux
這樣直接操作環(huán)境變量,會(huì)不會(huì)不安全?事實(shí)上很安全,因?yàn)?env:中的環(huán)境變量只是機(jī)器環(huán)境變量的一個(gè)副本,即使你更改了它,下一次重新打開(kāi)時(shí),又會(huì)恢復(fù)如初。(.NET方法更新環(huán)境變量除外)
我們可以將受信任的文件夾列表追加到環(huán)境變量的末尾,這樣就可以直接通過(guò)相對(duì)路徑執(zhí)行這些文件下的文件或者腳本,甚至省略擴(kuò)展名都可以。
PS> md .myscript Directory: Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2011/11/29 18:20 myscript PS> cd .myscript PSmyscript> "write-host 'Hollow , Powershell'" > hollow.ps1 PSmyscript> .hollow.ps1 Hollow , Powershell PSmyscript> cd .. PS> $env:Path+=";C:PowerShellmyscript" PS> hollow.ps1 Hollow , Powershell PS> hollow Hollow , Powershell
環(huán)境變量更新生效
上述對(duì)于環(huán)境變量的操作只會(huì)影響當(dāng)前powershell會(huì)話(huà),并沒(méi)有更新在機(jī)器上。
.NET方法[environment]::SetEnvironmentvariable操作可以立刻生效。
下面的例子對(duì)當(dāng)前用戶(hù)設(shè)置環(huán)境變量,經(jīng)測(cè)試,重新打開(kāi)powershell仍然存在
PS> [environment]::SetEnvironmentvariable("Path", ";c:\powershellscript", "User") PS> [environment]::GetEnvironmentvariable("Path", "User") ;c:\powershellscript
相關(guān)文章
Powershell實(shí)現(xiàn)捕獲系統(tǒng)內(nèi)置EXE程序的異常
這篇文章主要介紹了Powershell實(shí)現(xiàn)捕獲系統(tǒng)內(nèi)置EXE程序的異常,系統(tǒng)內(nèi)置的EXE程序是指如robocopy.exe、ipconfig.exe等命令的實(shí)現(xiàn)程序,需要的朋友可以參考下2014-12-12Powershell生成Windows密碼算法簡(jiǎn)單學(xué)習(xí)
利用Powershell生成Windows密碼:密碼一共8位/字符的次序是隨機(jī)組成的等等,接下來(lái)為你詳細(xì)介紹下,感興趣的你可以參考下哈,希望對(duì)你學(xué)習(xí)Powershell有所幫助2013-03-03PowerShell面向?qū)ο缶幊袒A(chǔ)知識(shí)總結(jié)
這篇文章主要介紹了PowerShell面向?qū)ο缶幊袒A(chǔ)知識(shí)總結(jié),本文著重講解面向?qū)ο蟮囊恍└拍?又給出了Get-Member命令輸出類(lèi)的屬性和方法的例子,需要的朋友可以參考下2014-08-08Powershell實(shí)現(xiàn)從注冊(cè)表獲取用戶(hù)配置腳本分享
這篇文章主要介紹了Powershell實(shí)現(xiàn)從注冊(cè)表獲取用戶(hù)配置腳本分享,本文直接給出實(shí)現(xiàn)腳本源碼,需要的朋友可以參考下2015-03-03Powershell小技巧之使用-F方法帶入數(shù)據(jù)
這篇文章主要介紹了Powershell的一個(gè)使用-F方法帶入數(shù)據(jù)的小技巧,非常的簡(jiǎn)單,也很易懂,記錄一下分享給大家2014-09-09PowerShell捕獲錯(cuò)誤的2種方法(異常捕獲命令、錯(cuò)誤變量)
這篇文章主要介紹了PowerShell捕獲錯(cuò)誤的2種方法(異常捕獲命令、錯(cuò)誤變量),需要的朋友可以參考下2014-04-04PowerShell中iso8601格式日期和DateTime對(duì)象互轉(zhuǎn)實(shí)例
這篇文章主要介紹了PowerShell中iso8601格式日期和DateTime對(duì)象互轉(zhuǎn)實(shí)例,本文講解了iso8601格式轉(zhuǎn)換成DateTime對(duì)象、日期時(shí)間轉(zhuǎn)換成iso8601格式兩個(gè)方法,需要的朋友可以參考下2015-01-01