Nella riga di comando di Windows, echo %PATH%sembra unire il sistema e le variabili utente PATHin 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 /Mflag quando si emette il 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
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 %bper evitare ERRORE: il sistema non è stato in grado di trovare la chiave o il valore di registro specificati (nota2^>NUL). Inoltre, potrebbe essere rimossoskip=2poiché è sovrabbondante per questo caso (ma comunque importante per laHKLMquery)