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.