Windows 2008R2 Powershell v2.0
原始路径(从高级系统设置/环境变量中可以看到)是:
%SYSTEMROOT%\ SYSTEM32;%SYSTEMROOT%;%SYSTEMROOT%\ System32下\ WBEM;%SYSTEMROOT%\ System32下\ WindowsPowerShell \ V1.0 \
从Powershell我跑:
[Environment]::SetEnvironmentVariable("PATH", "$($env:path;C:\Temp", "Machine")
或
[Environment]::SetEnvironmentVariable("PATH", "$($([Environment]::GetEnvironmentVariable('PATH', 'MACHINE')));C:\Temp", "Machine")
现在我的路径(从高级系统设置/环境变量中看到)是:
C:\ Windows \ System32下; C:\视窗; C:\ Windows \ System32下\ WBEM; C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \; C:\温度
有没有办法检索现有路径而不评估它,以便我可以保留原始路径中嵌入的现有环境变量?
答案 0 :(得分:3)
有点中世纪,但似乎有效:
(((reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment") |
select-string "\s+path\s+REG_EXPAND_SZ").line -split " ")[3]
答案 1 :(得分:1)
答案 2 :(得分:0)
尝试此操作(转换为PS后):
string originalPath = Environment.GetEnvironmentVariable("PATH");
string path = originalPath + ";" + "NEW_PATH_BIT";
Environment.SetEnvironmentVariable("PATH", path);
答案 3 :(得分:-1)
我不确定是否有 - 我试过这个:
PS C:\> $string1 = " World"
PS C:\> $string2 = "Hello$string1"
PS C:\> $string2
Hello World
查看它是否与环境变量或其他内容有关。
我猜这是在命令行上编译的方式。在评估整个表达式之前评估所有变量。所以最终的结果并不知道进入它的工作。