我想知道,如何将值附加到现有的PATH变量(用户范围):
SETX PATH "%PATH%;D:\Myfolder\Test\"
上面的脚本使用系统路径变量数据%PATH%
并将我的文件夹path(D:\Myfolder\Test\
)附加到PATH(用户范围)。
我需要在追加之前获取用户路径变量。我需要修复此案例。
请提供您的建议。
我想知道,如何将值附加到现有的PATH变量(用户范围):
SETX PATH "%PATH%;D:\Myfolder\Test\"
上面的脚本使用系统路径变量数据%PATH%
并将我的文件夹path(D:\Myfolder\Test\
)附加到PATH(用户范围)。
我需要在追加之前获取用户路径变量。我需要修复此案例。
请提供您的建议。
Answers:
只是确保我理解正确:你想编辑用户范围的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\"
-Command
Powershell 的参数,类似于/C
CMD中的参数,告诉它只运行一个特定的命令。您可以将这三行组合成一行(通过嵌套命令,或者用;
分号分隔)。然后你可以告诉PS用一行CMD运行整个事情。