一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - PowerShell - Windows Powershell 環境變量

Windows Powershell 環境變量

2020-06-19 10:47腳本之家 PowerShell

Windows PowerShell提供了一個名為euv的盤符,通過它可以訪問傳統的環境變量。因此,舉個例子來說,Cmd.exe傳統命令行中的%TEMP%變量,在PowerShell中對應的表達式就是env:\temp。今天我們就來詳細的探討下Powershell的環境變量

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

讀取特殊的環境變量

通過環境變量讀取Windows操作系統的安裝路徑,和默認應用程序的安裝路徑。

?
1
2
3
4
PS> $env:windir
C:\Windows
PS> $env:ProgramFiles
C:\Program Files

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

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

查找環境變量

Powershell把所有環境變量的記錄保存在env: 虛擬驅動中,因此可以列出所有環境變量 。一旦查出環境變量的名字就可以使用$env:name 訪問了。

?
1
2
3
4
5
6
7
8
9
10
11
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

創建新的環境變量

創建新環境變量的方法和創建其它變量一樣,只需要指定env:虛擬驅動器即可

?
1
2
3
4
5
6
7
8
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

刪除和更新環境變量

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

?
1
2
3
PS> del env:windir
PS> $env:windir
PS>

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

?
1
2
3
4
5
PS> $env:OS
Windows_NT
PS> $env:OS="Redhat Linux"
PS> $env:OS
Redhat Linux

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

我們可以將受信任的文件夾列表追加到環境變量的末尾,這樣就可以直接通過相對路徑執行這些文件下的文件或者腳本,甚至省略擴展名都可以。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

環境變量更新生效
上述對于環境變量的操作只會影響當前powershell會話,并沒有更新在機器上。
.NET方法[environment]::SetEnvironmentvariable操作可以立刻生效。
下面的例子對當前用戶設置環境變量,經測試,重新打開powershell仍然存在

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品永久免费视频 | 天作谜案免费完整版在线观看 | 日韩综合第一页 | 色老板成人永久免费视频 | 亚洲 欧美 偷自乱 图片 | 91短视频社区在线观看 | 男女爆操 | 青青青视频免费线看 视频 青青青青青国产免费手机看视频 | 99视频观看| 91庥豆果冻天美精东蜜桃传媒 | 操操综合网 | 国产一区二区三区欧美 | 国产123区 | 性绞姿始动作动态图 | 色先锋 影音先锋a 资源站 | 免费观看俄罗斯特黄特色 | 91啦中文在线观看 | 按摩院已婚妇女中文字幕 | 国产日韩一区二区三区 | 兽操人 | 色综合久久98天天综合 | 国产成人免费高清激情视频 | 小柔的性放荡羞辱日记动漫 | 8x8x极品国产在线 | 91桃花 | 亚洲人成网站在线观看播放青青 | 精品国产精品人妻久久无码五月天 | 亚洲天堂精品在线观看 | 亚洲福利区 | 男人天堂官方网站 | 亚洲小视频在线 | 欧美一级特黄刺激大片视频 | 亚洲欧美国产自拍 | 色啊色| 特黄特级高清免费视频毛片 | 91香蕉视频网址 | 免费国产白棉袜踩踏区域 | b站免费| 15一16japanese破 | 欧美精品1区 | 午夜免费无码福利视频麻豆 |