我想知道如何将值附加到现有的 PATH 变量(用户范围):
SETX PATH "%PATH%;D:\Myfolder\Test\"
上述脚本使用系统路径变量数据%PATH%
并将我的文件夹路径(D:\Myfolder\Test\
)附加到 PATH(用户范围)。
我的需求是在附加之前获取用户路径变量。我需要修复这种情况。
请提供您的建议。
答案1
只是确保我理解正确:您想要编辑用户范围的 PATH 变量,但不想将系统范围的 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")
您可以在以下位置阅读有关处理环境变量的更多信息这个超级用户问题。
请注意,与setx
命令一样,这实际上不会改变任何环境变量在当前进程中。如果你想这样做,你可以在调用中使用"PROCESS"
而不是,或者只是将你的值附加到,例如"USER"
SetEnvironmentVariable
$ENV:PATH
$ENV:PATH = $ENV:PATH + ";D:\Myfolder\Test\"