Powershell persistent environment variables永久性环境变量的设置

以下代码改变当前session进程的环境变量值,但是退出powershell窗口再次进入,这些修改就会消失。

$Env:abc = 1
Set-Item Env:abc 1

要保存变量,可以使用windows的SETX命令,但Linux下没有setx命令,因此采用.NET的方式更具有通用性。

[Environment]::SetEnvironmentVariable("TV", "a permanent variable in user space.", "User")
[Environment]::SetEnvironmentVariable("TV", "a permanent variable in machine space.", "Machine")

如何删除保存的变量?把值设置成$null即可。

[Environment]::SetEnvironmentVariable("TV", $null, "Machine")

改变Path变量的一些例子

首先在powershel的交互窗口中确定结果是期望的结果之后,再将值设置成永久改变。

$OriginPath = $env:path

# 删除最后两个路径
($OriginPath -split ';' | Select-Object -SkipLast 2) -join ';'

# 如果结果正确
[Environment]::SetEnvironmentVariable("path", (($OriginPath -split ';' | Select-Object -SkipLast 2) -join ';'), "User")

Leave a Reply

Your email address will not be published. Required fields are marked *