Elencare tutte le variabili di ambiente dalla riga di comando


934

È possibile elencare tutte le variabili di ambiente dal prompt dei comandi di Windows?

Qualcosa di equivalente a PowerShell gci env:(o ls env:o dir env:).


1
Qualcuno può condividere una soluzione PowerShell? Dovrebbe essere il futuro e tutto il resto. Giusto?
Bruno Bronosky,

1
@BrunoBronosky la soluzione PS è inclusa nella domanda, e c'è anche una risposta che la ripete =)
Jon

Per una descrizione di ciascuno, consultare ss64.com/nt/syntax-variables.html
Samuel Harmer,

Risposte:


1354

Basta fare:

SET

Puoi anche fare SET prefixper vedere tutte le variabili con nomi che iniziano con prefix.

Ad esempio, se si desidera leggere solo derbydb dalle variabili di ambiente, attenersi alla seguente procedura:

set derby 

... e otterrai quanto segue:

DERBY_HOME=c:\Users\amro-a\Desktop\db-derby-10.10.1.1-bin\db-derby-10.10.1.1-bin

7
Questo mi chiede un nome?
CMCDragonkai

53
@KevinMeredith: tutti i comandi nella shell di Windows non fanno distinzione tra maiuscole e minuscole.
Jon

12
@CMCDragonkai stai usando PowerShell? Sembra che abbia fatto un'escursione impostata con uno dei suoi comandi. Questa è una delle sue caratteristiche meno utili! Ho fatto una domanda sulla disabilitazione di questo qui
JonnyRaa,

3
Qualcuno può aggiornarlo per includere una soluzione PowerShell? Dovrebbe essere il futuro e tutto il resto. Giusto?
Bruno Bronosky,

3
@NickTimmer poiché stai parlando con bash invece della shell di Windows, questa è la domanda / risposta sbagliata per te. Guarda printenv.
Jon

167

Jon ha la risposta giusta, ma per elaborare un po 'di più con un po' di zucchero sintattico ..

SET | more

ti permette di vedere le variabili una pagina alla volta, piuttosto che l'intero lotto, oppure

SET > output.txt

invia l'output a un file output.txt che puoi aprire in Blocco note o qualsiasi altra cosa ...


7
non avevo idea che moreesistesse su Windows, +1
ardnew

in realtà è integrato anche in alcune funzioni. Dir ad esempio sfoglierà con a / p.
John Lord,

@ardnew: ora ne sai di più ;-)
user2943111

107

Per elencare tutte le variabili di ambiente in PowerShell:

Get-ChildItem Env:

O come suggerito dall'utente797717 per evitare il troncamento dell'output:

Get-ChildItem Env: | Format-Table -Wrap -AutoSize

Fonte: creazione e modifica di variabili d'ambiente ( suggerimento della settimana per Windows PowerShell )


4
Anche se non uso PowerShell perché non funziona per ogni comando cmd, questa è l'unica soluzione per una stampa carina (su 2 colonne) senza grandi sforzi. Per ottenere lo stesso comportamento in cmd, hai bisogno di qualcosa del genere for /f "tokens=1,2 delims==" ...che diventa molto complicato ...
ROMANIA_engineer

6
Per evitare che l'output venga troncato, utilizzerei quanto segue:Get-ChildItem Env: | Format-Table -Wrap -AutoSize
user797717

1
gci env:invece Get-ChildItem Env:, più facile da ricordare
matson kepson il

Perfetto! Non vedo perché questa non sia la risposta migliore per essere onesti: / EDIT: Oh, aspetta, capisco perché ... la domanda originale non era su come farlo in Powershell, ma nella vecchia scuola Comando: D
Yoeri Van Nieuwerburg

79

Basta eseguire setda cmd.

Visualizza, imposta o rimuove le variabili di ambiente. Utilizzato senza parametri, set visualizza le impostazioni correnti dell'ambiente.


11

Puoi usare SETin cmd

Per mostrare la variabile corrente, SETè sufficiente

Per mostrare alcune variabili come 'PATH', usare SET PATH.

Per aiuto, digitare set /?.


2
In che modo differisce dalle risposte esistenti?
Peter Mortensen,

7

Non perdere tempo. Cerca nel registro:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

restituisce meno del comando SET.


2
sebbene ciò possa essere vero, una differenza è che la query del registro restituisce REG_EXPAND_SZchiavi non espanse . Ad esempio reg query "HKCU\Environment", mi mostra che la mia %TEMP%variabile dipende dal valore di %USERPROFILE%, quindi se quel valore cambia, anche il valore per %TEMP%. Al contrario, SETritorna"C:\Users\mpag\AppData\Local\Temp"
mpag

1
Perché dici "non perdere tempo"? Scrivere "set" nel prompt dei comandi non è più veloce di "reg query ..."?
Alexandre Huat

4

Se vuoi vedere la variabile d'ambiente che hai appena impostato, devi aprire una nuova finestra di comando.

Le variabili impostate con le variabili setx sono disponibili solo nelle finestre di comando future, non nella finestra di comando corrente. ( Setx, Esempi )


4

Come menzionato in altre risposte, è possibile utilizzare setper elencare tutte le variabili di ambiente o utilizzare

set [environment_variable] per ottenere una variabile specifica con il suo valore.

set [environment_variable]= può essere utilizzato per rimuovere una variabile dallo spazio di lavoro.


1
Sì, ma come risponde alla domanda?
Peter Mortensen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.