Nella riga di comando di Windows, echo %PATH%
sembra unire il sistema e le variabili utente PATH
in tale ordine prima di stampare. Sembra ragionevole, ma vorrei anche poter stampare solo la variabile di sistema (o, in alternativa, solo la variabile utente).
Nota che echo
è solo un esempio, mi aspetto che funzioni con qualsiasi altro comando.
Si può facilmente impostare usando (o no) il /M
flag quando si emette il SETX
comando:
SETX PATH "D:\some\user\path"
^ sets the user variable PATH
SETX PATH "C:\some\system\path" /M
^ sets the system-wide variable PATH
Ma valutare %PATH%
in questo modo non sembra così semplice (o addirittura possibile). Digitando semplicemente i %PATH%
risultati in:
C:\some\system\path;D:\some\user\path
Sarebbe possibile recuperare solo C:\some\system\path
(o solo D:\some\user\path
)?
Sono a conoscenza dell'esistenza di un'interfaccia GUI che consente di distinguere facilmente tra i due. Tuttavia, mi piacerebbe realizzare questo compito usando solo la riga di comando.
for /f "tokens=2*" %a in ('reg query HKCU\Environment /v PATH 2^>NUL') do @echo %b
per evitare ERRORE: il sistema non è stato in grado di trovare la chiave o il valore di registro specificati (nota2^>NUL
). Inoltre, potrebbe essere rimossoskip=2
poiché è sovrabbondante per questo caso (ma comunque importante per laHKLM
query)