125 votes

Afficher toutes les variables d'environnement à partir d'un script PowerShell en cours d'exécution.

J'ai besoin d'afficher toutes les variables d'environnement configurées dans un script PowerShell au moment de l'exécution. Normalement, pour afficher les variables d'environnement, je peux simplement utiliser l'une des techniques suivantes au niveau du shell (parmi d'autres techniques, mais celles-ci sont simples) :

gci env:*
ls Env:

Cependant, j'ai un script qui est appelé à partir d'un autre programme, et lorsque j'utilise l'un des appels ci-dessus dans le script, au lieu d'être présenté avec les variables d'environnement et leurs valeurs, j'ai plutôt une liste de System.Collections.DictionaryEntry au lieu des variables et de leurs valeurs. À l'intérieur d'un script PowerShell, comment puis-je afficher toutes les variables d'environnement ?

186voto

jmjarri Points 929

Version courte :

gci env:* | sort-object name

Cela affichera à la fois le nom et la valeur.

1 votes

Pourriez-vous expliquer pourquoi il se comporte ainsi et comment votre commande le résout, s'il vous plaît ?

11 votes

C'est le signe du progrès car env était trop facile. Maudits soient les gens de M$.

46voto

VlaR Points 119

Version la plus courte (avec les variables triées par nom) :

gci env:

14voto

Alexander Miles Points 2207

J'ai finalement réussi à trouver une solution en itérant sur chaque entrée du dictionnaire :

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

0 votes

Ne fonctionne pas sur Linux pour moi. Est-ce qu'il vous manque gci pour obtenir les éléments de l'enfant ?

0 votes

Je n'ai pas essayé cela sur powershell core, mais gci est dans ma réponse. Notez que cette question concerne [powershell] et non [powershell-core], les solutions peuvent donc ne pas fonctionner pour ce dernier.

9voto

Emil Points 21

Version courte avec un joker filtre :

gci env: | where name -like 'Pro*'

1voto

Mauricio_BR Points 11

Je ne pense pas qu'aucune des réponses fournies soit en rapport avec la question. Le PO obtient la liste des types d'objets (qui sont les mêmes pour chaque membre) et non les noms et valeurs des variables. C'est ce que vous recherchez :

gci env:* | select Name,Value

Court pour :

Get-ChildItem Env:* | Select-Object -Property Name,Value

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X