PowerShell 环境变量

help about_Environment_Variables

Env: drive

陈列环境变量

Get-ChildItem Env: | Sort-Object Name
Get-ChildItem Env: | Where-Object { $_.Name -like "program*"}

创建

Set-Item -Path Env:Path -Value ($Env:Path + ";C:\Temp")

删除

Remove-Item Env:\TestVariable

$env:variable

$env:variable 更简便

$env:ProgramFiles
${env:ProgramFiles(x86)}


$Env:Path = $Env:Path + ";C:\Temp"
Add-Content -Path $Profile.CurrentUserAllHosts -Value '$Env:Path = $Env:Path + ";C:\Temp"'

.NET Framework methods

PowerShell cmdlets 对环境变量的修改只对当前 process 有效,想保存修改需要使用 .NET Framework methods。

访问

[environment]::GetEnvironmentVariable("Path", "User")
# 第一个参数是环境变量名字;
# 第一个参数是环境变量类型:Process, User, Machine

修改

[Environment]::SetEnvironmentVariable("TestVariable", "Test value.", "User")
[environment]::GetEnvironmentVariable("Path", "User")


# 删除
[Environment]::SetEnvironmentVariable("TestVariable", $null, "User")