[英]How to update system PATH variable permanently from cmd?
我们可以使用这里讨论的setx
。
setx PATH "%PATH%;C:\Something\bin"
但是这个命令只能改变用户 PATH 变量而不是系统变量。
我们如何制作一个类似的系统范围的命令?
setx /?
获取基本命令帮助。 你会很容易发现:
/M Specifies that the variable should be set in
the system wide (HKEY_LOCAL_MACHINE)
environment. The default is to set the
variable under the HKEY_CURRENT_USER
environment.
您需要从提升的命令提示符运行它。 右键单击cmd
快捷方式并选择Run as Administrator
。
例如
setx /M PATH "%PATH%;C:\Something\bin"
警告:
我们可能会破坏当前系统的 PATH 变量。 请确保在修改之前备份其值。
来自 PowerShell
setx /M PATH "$($env:path);c:\program files\mynewprogram"
%PATH% 的一个问题是它包含用户的路径。 如果你不介意Powershell,你可以运行以下命令
$p = [Environment]::GetEnvironmentVariable("PATH", [EnvironmentVariableTarget]::Machine);
[Environment]::SetEnvironmentVariable("PATH", $p + ";C:\MyPath", [EnvironmentVariableTarget]::Machine);
如果要在用户级别向 PATH 环境变量添加某个位置,请在命令行上使用以下命令:
setx PATH ^%PATH^%;"C:\Program Files\Something\bin"
为什么奇怪的语法? 首先,您不想扩展系统 PATH 变量而是将其保留为符号,否则您将不会参与未来对系统 PATH 变量的添加。 因此,您必须用 ^ 引用 % 字符。
如果在命令脚本中使用它,则必须使用双 %% 而不是 ^%。
" 包含一个包含空格的字符串。如果没有空格,则可以省略引号。
添加的字符串必须直接跟在没有空格的后面,因此整个内容形成了 setx 命令的单个参数。
处理>1024 字符路径时的解决方案:
其他答案都不适用于我的情况,但是使用pathed 可以解决问题。 您可以像这样简单地附加到路径:
pathed /append C:\Path\To\Be\Added /machine
您可以通过运行来检查编辑是否正确发生
pathed
PS:如果你想改变用户的路径而不是使用: pathed /append C:\\Path\\To\\Be\\Added /user
和pathed /user
来检查它是否正确通过。
PPS:为了能够从终端运行路径,您需要将 exe 放在路径上已有的目录中(或向路径添加一个新目录,但是您可能需要打开 cmd.exe 的新实例以便识别新路径)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.