Mostrar todas las variables de entorno desde un script de PowerShell en ejecución


104

Necesito mostrar todas las variables de entorno configuradas en un script de PowerShell en tiempo de ejecución. Normalmente, al mostrar variables de entorno, puedo usar una de las siguientes en el shell (entre otras técnicas, pero estas son simples):

gci env:*
ls Env:

Sin embargo, tengo un script que se llama desde otro programa, y ​​cuando uso una de las llamadas anteriores en el script, en lugar de que se me presenten las variables de entorno y sus valores, obtengo una lista de System.Collections.DictionaryEntrytipos en lugar de las variables y sus valores. . Dentro de un script de PowerShell, ¿cómo puedo mostrar todas las variables de entorno?

Respuestas:


156

Versión más corta:

gci env:* | sort-object name

Esto mostrará tanto el nombre como el valor.


1
¿Podría explicar por qué se comporta así y cómo lo corrige su comando, por favor?
David Ferenczy Rogožan

3
Esa es la señal de progreso porque envfue demasiado fácil. Maldita sea la gente de M $.
matcheek


14

Finalmente busqué una solución al iterar sobre cada entrada en el diccionario:

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

no se ejecuta en Linux para mí. ¿Falta gcipara conseguir los artículos para niños?
Thufir

No he probado esto en el núcleo de PowerShell, pero gci está en mi respuesta. Tenga en cuenta que esta pregunta es para [powershell] y no [powershell-core], por lo que las soluciones pueden no funcionar para este último.
Bender the Greatest

7

Versión corta con filtro comodín :

gci env: | where name -like 'Pro*'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.