Avalie %PATH% exclusivamente como a variável de ambiente do escopo do sistema

Avalie %PATH% exclusivamente como a variável de ambiente do escopo do sistema

Na linha de comando do Windows, echo %PATH%parece mesclar as variáveis ​​do sistema e do usuário PATHnesta ordem antes de imprimir. Isso parece razoável, mas eu também gostaria de poder imprimir apenas a variável do sistema (ou, alternativamente, apenas a variável do usuário).
Observe que echoé apenas um exemplo, espero que funcione com qualquer outro comando.

Pode-se facilmentedefinirusando (ou não) o /Msinalizador ao emitir o SETXcomando:

SETX PATH "D:\some\user\path"
^ sets the user variable PATH
SETX PATH "C:\some\system\path" /M
^ sets the system-wide variable PATH

Masavaliando %PATH%dessa maneira não parece tão simples (ou mesmo possível). Basta digitar os %PATH%resultados em:

C:\some\system\path;D:\some\user\path

Seria possível recuperar apenas C:\some\system\path(ou apenas D:\some\user\path)?

Estou ciente da existência de uma interface GUI que permite distinguir facilmente entre os dois. No entanto, gostaria de realizar esta tarefa usando apenas a linha de comando.

Responder1

Você sempre pode consultar os valores do registro diretamente:

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

informação relacionada