使用cmd获取当前用户路径变量而不使用系统路径

时间:2017-10-12 14:56:59

标签: cmd environment-variables registry

当我使用我的标准用户(也是管理员)登录时,命令echo %PATH%将返回系统路径+用户的路径。我怎样才能获得用户的路径?

E.g。当我当前用户的路径为C:\ruby;C:\java\bin且系统路径为%SystemRoot%\system32;%SystemRoot%时,上面的命令会返回%SystemRoot%\system32;%SystemRoot%;C:\ruby;C:\java\bin,但我只想拥有C:\ruby;C:\java\bin才能添加到用户的路径永久不包括系统的路径垃圾。

我的目标是将目录附加到路径变量。我试图用命令setx PATH %PATH%;C:\ruby\bin执行此操作,因为系统的路径而破坏了我的路径变量。

2 个答案:

答案 0 :(得分:3)

如果变量存在,因为它不是默认,你可以使用注册表获得它。

以下是命令提示符中的一种方法:

For /F "Skip=2Tokens=1-2*" %A In ('Reg Query HKCU\Environment /V PATH 2^>Nul') Do @Echo %A=%C

答案 1 :(得分:3)

使用PowerShell的另一种方式。

(Get-ItemProperty HKCU:\Environment).PATH

或者,从cmd.exe shell。

powershell -NoProfile -Command "(Get-ItemProperty HKCU:\Environment).PATH"

为了在没有插值的情况下检索变量。

(Get-Item -Path HKCU:\Environment).GetValue('PATH', $null, 'DoNotExpandEnvironmentNames')

powershell -NoProfile -Command ^
    "(Get-Item -Path HKCU:\Environment).GetValue('PATH', $null, 'DoNotExpandEnvironmentNames')"