Exibir todas as variáveis ​​de ambiente de um script PowerShell em execução


104

Preciso exibir todas as variáveis ​​de ambiente configuradas em um script do PowerShell em tempo de execução. Normalmente, ao exibir variáveis ​​de ambiente, posso apenas usar um dos seguintes no shell (entre outras técnicas, mas estas são simples):

gci env:*
ls Env:

No entanto, tenho um script sendo chamado de outro programa e, quando uso uma das chamadas acima no script, em vez de ser apresentado com variáveis ​​de ambiente e seus valores, recebo uma lista de System.Collections.DictionaryEntrytipos em vez das variáveis ​​e seus valores . Dentro de um script do PowerShell, como posso exibir todas as variáveis ​​de ambiente?

Respostas:


156

Versão mais curta:

gci env:* | sort-object name

Isso exibirá o nome e o valor.


1
Você poderia explicar por que ele se comporta assim e como seu comando o corrige, por favor?
David Ferenczy Rogožan

3
Esse é o sinal de progresso porque envera muito fácil. Malditos M $ pessoas.
matcheek

36

Versão mais curta (com variáveis ​​classificadas por nome):

gci env:

14

Finalmente encontrei uma solução, iterando cada entrada no dicionário:

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

não funciona no Linux para mim. Você está faltando gcipara obter os itens filhos?
Thufir

Eu não tentei isso no núcleo do PowerShell, mas gci está na minha resposta. Observe que esta questão é para [powershell] e não [powershell-core], portanto, as soluções podem não funcionar para o último.
Bender the Greatest

7

Versão curta com filtro curinga :

gci env: | where name -like 'Pro*'
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.