分享一个PowerShell设置环境变量的函数/脚本

因为经常需要设置不同的开发环境,而且要保持多台设备的一致性,就考虑写一个命令行脚本来执行有关操作,查询了网上并没有符合自己需求的脚本(1.可以命令行直接设置任意用户环境变量或者系统环境变量;2.调用简单),所以自己写了这么一个函数封装,分享出来给有同样需要的同志。

  1. 新建ps1脚本,复制函数进去,前面依次添加需要设置的环境变量
  2. 管理员运行PowerShell ,执行 Set-ExecutionPolicy unrestricted ,注意该命令会修改PowerShell脚本执行策略为:可以执行任意本或本地PS脚本,只是在执行前会提示,安全性自行考虑。
  3. 双击运行脚本即可
Set-Env -EnvName MyPath -AddPath Zakary -Target User

#$EnvName:需要设置的环境变量名称
#$AddPath:需要添加的环境变量内容
#$Target:环境变量更改目标,User表示用户环境变量,Machine表示系统环境变量,Process当前程序环境变量
Function Set-Env([string]$EnvName,[string]$AddPath,[string]$Target){
    $OriPath = [Environment]::GetEnvironmentVariable($EnvName,$Target)

    If([String]::IsNullOrEmpty($OriPath)){ #如果原环境变量不存在
       $Path = $AddPath
    }
    Else{
        If($OriPath.contains($AddPath)){ #如果原环境变量包含了即将要设置的环境变量
            return 
        }
        Else{
            If($OriPath.SubString($OriPath.Length - 1) -eq ";"){ #如果原环境变量最后一个字符是;
                $Path = [Environment]::$OriPath +  $AddPath
            }
            Else{ #如果原环境变量最后一个字符不是;
                $Path = [Environment]::$OriPath + ";" + $AddPath
            }
        }

    }
    # 设置环境变量
    [Environment]::SetEnvironmentVariable($EnvName, $Path, $Target)
}
3 个赞

我也喜歡PowerShell。

可以试试 setx 命令

下面是个简单的示例

setx "Path" "D:\Scoop\shims;%path%" /m