在 Windows 的命令行中,echo %PATH%
似乎PATH
在打印之前按此顺序合并系统变量和用户变量。这似乎是合理的,但我还希望能够仅打印系统变量(或者,仅打印用户变量)。
请注意,这echo
只是一个例子,我希望它可以与任何其他命令一起使用。
人们可以很容易地放/M
通过在发出命令时使用(或不使用)标志SETX
:
SETX PATH "D:\some\user\path"
^ sets the user variable PATH
SETX PATH "C:\some\system\path" /M
^ sets the system-wide variable PATH
但评估 %PATH%
这种方式似乎并不简单(甚至不可能)。只需输入%PATH%
结果:
C:\some\system\path;D:\some\user\path
是否有可能仅检索C:\some\system\path
(或仅D:\some\user\path
)?
我知道存在一个 GUI 界面,可以让人轻松区分这两者。但是,我只想使用命令行来完成这项任务。
答案1
您可以随时直接查询注册表值:
for /f "skip=2 tokens=2*" %a in ('reg query HKCU\Environment /v PATH') do @echo %b
for /f "skip=2 tokens=2*" %a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH') do @echo %b