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