windows 如何从cmd永久更新系统PATH变量?

epggiuax  于 2022-11-18  发布在  Windows
关注(0)|答案(6)|浏览(357)

我们可以像讨论here那样使用setx

setx PATH "%PATH%;C:\Something\bin"

但此命令只能更改用户PATH变量,而不是系统PATH变量。
我们怎样才能制定一个类似的系统范围的命令呢?

dkqlctbz

dkqlctbz1#

键入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变量。请确保在修改它之前备份它的值。

798qvoo8

798qvoo82#

从powershell

setx /M PATH "$($env:path);c:\program files\mynewprogram"
x4shl7ld

x4shl7ld3#

处理**〉1024字符路径**时的解决方案:
在我的例子中,其他的答案都不起作用,但是使用pathed就可以了。

pathed /append C:\Path\To\Be\Added /machine

您可以通过运行以下命令来检查编辑是否正确

pathed

PS:如果要更改用户的路径,请用途:pathed /append C:\Path\To\Be\Added /userpathed /user以检查其是否正确通过。
PPS:为了能够从终端运行pathed,您需要将exe放在路径上已经存在的目录中(或者向路径添加一个新目录,但随后您可能需要打开cmd.exe的新示例,以便识别新路径)

mmvthczy

mmvthczy4#

%PATH%的一个问题是它包含用户的路径。如果您不介意Powershell,可以运行以下命令

$p = [Environment]::GetEnvironmentVariable("PATH", [EnvironmentVariableTarget]::Machine);
[Environment]::SetEnvironmentVariable("PATH", $p + ";C:\MyPath", [EnvironmentVariableTarget]::Machine);
edqdpe6u

edqdpe6u5#

如果要在用户级别上向PATH环境变量添加某个位置,请在命令行中使用以下命令:

setx PATH ^%PATH^%;"C:\Program Files\Something\bin"

为什么语法这么奇怪呢?首先,你不想扩展系统PATH变量,而是把它作为一个符号保留,否则你将无法参与到以后对系统PATH变量的添加中。因此,你必须用^将%字符引起来。
如果在命令脚本中使用此选项,则必须使用双%%而不是^%。
“括起包含空格得字符串.如果没有空格,可以省略引号.
添加的字符串必须直接跟在后面,没有空格,这样整个字符串就形成了setx命令的单个参数。

q5lcpyga

q5lcpyga6#

请参阅在Windows中向PATH环境变量添加目录

append_user_path.cmd
append_system_path.cmd
  • 两个都很好用

相关问题