Windows Powershell 環境變數_PowerShell

來源:互聯網
上載者:User

傳統的控制台一般沒有象Powershell這麼進階的變數系統。它們都是依賴於機器本身的環境變數,進行操作 。環境變數對於powershell顯得很重要,因為它涵蓋了許多作業系統的細節資訊。此外,powershell中的變數只存在於powershell內部的會話中,一旦powershell關閉,這些變數就會自生自滅。但是如果環境變數被更新了,它會繼續儲存在作業系統中,即使其它程式也可以調用它。

讀取特殊的環境變數

通過環境變數讀取Windows作業系統的安裝路徑,和預設應用程式的安裝路徑。

PS> $env:windirC:\WindowsPS> $env:ProgramFilesC:\Program Files

通過$env:,這就提示powershell忽略基本的variable:磁碟機,而是去環境變數env:磁碟機中尋找變數。為了和其它變數保持一致,powershell環境變數也可以象其它變數那樣使用。比如你可以把它插入到文本中。

PS> "My computer name $env:COMPUTERNAME"My computer name MYHome-test-01

尋找環境變數

Powershell把所有環境變數的記錄儲存在env: 虛擬驅動中,因此可以列出所有環境變數 。一旦查出環境變數的名字就可以使用$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

建立新的環境變數

建立新環境變數的方法和建立其它變數一樣,只需要指定env:虛擬磁碟機即可

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

刪除和更新環境變數

在powershell刪除和更新環境變數和常規變數一樣。例如要刪除環境變數中的 windir,

PS> del env:windirPS> $env:windirPS>

可以更新環境變數$env:OS 為linux redhat。

PS> $env:OSWindows_NTPS> $env:OS="Redhat Linux"PS> $env:OSRedhat Linux

這樣直接作業環境變數,會不會不安全?事實上很安全,因為$env:中的環境變數只是機器環境變數的一個副本,即使你更改了它,下一次重新開啟時,又會恢複如初。(.NET方法更新環境變數除外)

我們可以將受信任的資料夾清單追加到環境變數的末尾,這樣就可以直接通過相對路徑執行這些檔案下的檔案或者指令碼,甚至省略副檔名都可以。

PS> md .myscript  Directory:Mode        LastWriteTime   Length Name----        -------------   ------ ----d----    2011/11/29   18:20      myscriptPS> cd .myscriptPSmyscript> "write-host 'Hollow , Powershell'" > hollow.ps1PSmyscript> .hollow.ps1Hollow , PowershellPSmyscript> cd ..PS> $env:Path+=";C:PowerShellmyscript"PS> hollow.ps1Hollow , PowershellPS> hollowHollow , Powershell

環境變數更新生效
上述對於環境變數的操作只會影響當前powershell會話,並沒有更新在機器上。
.NET方法[environment]::SetEnvironmentvariable操作可以立刻生效。
下面的例子對目前使用者設定環境變數,經測試,重新開啟powershell仍然存在

PS> [environment]::SetEnvironmentvariable("Path", ";c:\powershellscript", "User")PS> [environment]::GetEnvironmentvariable("Path", "User");c:\powershellscript

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.