协慌网

登录 贡献 社区

设置 Windows PowerShell 环境变量

我发现设置 PATH 环境变量仅影响旧的命令提示符。 PowerShell 似乎具有不同的环境设置。如何更改 PowerShell(v1)的环境变量?

笔记:

我想使更改永久生效,因此不必每次运行 PowerShell 时都进行设置。 PowerShell 是否有配置文件?类似于 Unix 上的 Bash 配置文件?

答案

如果在 PowerShell 会话期间的某个时间需要临时添加到 PATH 环境变量,则可以采用以下方式:

$env:Path += ";C:\Program Files\GnuWin32\bin"

env: namespace / drive信息来更改实际的环境变量。例如,以下代码将更新路径环境变量:

$env:Path = "SomeRandomPath";             (replaces existing path) 
$env:Path += ";SomeRandomPath"            (appends to existing path)

有一些方法可以使环境设置永久化,但是如果仅从 PowerShell 使用它们,则最好使用您的配置文件来初始化设置。启动时,PowerShell 将运行在 “我的文档” 文件夹下WindowsPowerShell目录中找到的所有. ps1 文件。通常,您已经有一个profile.ps1文件。我电脑上的路径是

C:\Users\JaredPar\Documents\WindowsPowerShell\profile.ps1

您还可以使用以下命令永久修改用户 / 系统环境变量(即在 Shell 重新启动后将永久保留):

修改系统环境变量

[Environment]::SetEnvironmentVariable
     ("Path", $env:Path, [System.EnvironmentVariableTarget]::Machine)

修改用户环境变量

[Environment]::SetEnvironmentVariable
     ("INCLUDE", $env:INCLUDE, [System.EnvironmentVariableTarget]::User)

注释的用法 - 添加到系统环境变量

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + ";C:\bin",
    [EnvironmentVariableTarget]::Machine)

如果您不想编写类型,也可以使用基于字符串的解决方案

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", "Machine")