用户范围环境变量:PATH将字符串值附加到现有值


2

我想知道,如何将值附加到现有的PATH变量(用户范围):

SETX PATH "%PATH%;D:\Myfolder\Test\"

上面的脚本使用系统路径变量数据%PATH%并将我的文件夹path(D:\Myfolder\Test\)附加到PATH(用户范围)。

我需要在追加之前获取用户路径变量。我需要修复此案例。

请提供您的建议。

Answers:


1

只是确保我理解正确:你想编辑用户范围的PATH变量,但是不想将PATH的系统范围副本中的所有内容添加到用户范围的变量中吗?

我知道这样做的最好方法实际上是使用Powershell。是的,我知道你把它标记为bash,但我很确定你不是故意的; setx是一个Windows命令。:-)

[System.Environment]::GetEnvironmentVariable("PATH","USER")将获取当前用户范围的PATH环境变量作为字符串。然后,您可以附加到此并使用该SetEnvironmentVariable函数将其存储回来。

$userpath = [System.Environment]::GetEnvironmentVariable("PATH","USER")
$userpath = $userpath + ";D:\Myfolder\Test\"
[System.Environment]::SetEnvironmentVariable("PATH",$userpath,"USER")

您可以在此SuperUser问题中阅读有关搞乱环境变量的更多信息。

请注意,与setx命令一样,这实际上不会更改当前进程中的任何环境变量。如果你想这样做,你可以使用"PROCESS"而不是"USER"通过调用SetEnvironmentVariable,或只是将你的值附加到$ENV:PATH类似的东西$ENV:PATH = $ENV:PATH + ";D:\Myfolder\Test\"


很好理解。我不知道Powershell脚本。我们创建一个Powershell脚本文件,其中包含这些脚本(您的3行)并单击此文件以实现我们的功能。是否有这样的可能性?
Senthil Arumugam 2015年

您需要通过双击.PS1文件来更改脚本信任规则(或签署脚本)才能正常工作,但您可以。你也可以使用-CommandPowershell 的参数,类似于/CCMD中的参数,告诉它只运行一个特定的命令。您可以将这三行组合成一行(通过嵌套命令,或者用;分号分隔)。然后你可以告诉PS用一行CMD运行整个事情。
CBHacking 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.