Оценивать %PATH% исключительно как системную переменную среды

Оценивать %PATH% исключительно как системную переменную среды

В командной строке 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)?

Я знаю о существовании графического интерфейса, который позволяет легко различать эти два варианта. Однако я хотел бы выполнить эту задачу, используя только командную строку.

решение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

Связанный контент