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

LPr*_*Prc 6 registry cmd environment-variables

当我使用标准用户(也是管理员)登录时,该命令echo %PATH%返回系统路径+用户路径。如何只获取用户的路径?

例如,当我当前用户的路径是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我尝试使用由于系统路径而破坏了我的路径变量的命令来执行此操作。

lit*_*lit 7

另一种方法是使用 PowerShell。

(Get-ItemProperty HKCU:\Environment).PATH
Run Code Online (Sandbox Code Playgroud)

或者,从 cmd.exe shell。

powershell -NoProfile -Command "(Get-ItemProperty HKCU:\Environment).PATH"
Run Code Online (Sandbox Code Playgroud)

为了在不进行插值的情况下检索变量。

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

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


Com*_*mpo 6

如果该变量存在(因为默认情况下不存在),您可以使用注册表获取该变量。

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

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