Visualizza tutte le variabili di ambiente da uno script PowerShell in esecuzione


104

Devo visualizzare tutte le variabili di ambiente configurate in uno script PowerShell in fase di esecuzione. Normalmente quando si visualizzano le variabili d'ambiente posso semplicemente usare una delle seguenti nella shell (tra le altre tecniche, ma queste sono semplici):

gci env:*
ls Env:

Tuttavia, ho uno script che viene chiamato da un altro programma e quando utilizzo una delle chiamate precedenti nello script, invece di essere presentato con le variabili di ambiente ei loro valori, ottengo invece un elenco di System.Collections.DictionaryEntrytipi invece delle variabili e dei loro valori . All'interno di uno script PowerShell, come posso visualizzare tutte le variabili d'ambiente?

Risposte:


156

Versione più breve:

gci env:* | sort-object name

Questo mostrerà sia il nome che il valore.


1
Potresti spiegare perché si comporta così e come il tuo comando lo risolve, per favore?
David Ferenczy Rogožan

3
Questo è il segno del progresso perché envera troppo facile. Accidenti a voi M $ persone.
matcheek


14

Alla fine sono riuscito a trovare una soluzione ripetendo ogni voce nel dizionario:

(gci env:*).GetEnumerator() | Sort-Object Name | Out-String

non funziona su Linux per me. Ti manca gciper ottenere gli elementi figlio?
Thufir

Non l'ho provato su PowerShell core, ma gci è nella mia risposta. Nota che questa domanda è per [powershell] e non [powershell-core], quindi le soluzioni potrebbero non funzionare per quest'ultimo.
Bender the Greatest

7

Versione breve con filtro jolly :

gci env: | where name -like 'Pro*'
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.