PowerShell: Formatar e classificar variáveis de ambiente

3

Usando o PowerShell, posso obter todas as variáveis de ambiente (do processo atual) e formatá-las e classificá-las:

gci env: | %{"{0}={1}" -f $_.Name,$_.Value} | sort

que dá:

a=foo
b=bar
c=baz

Mas isso dá todas as variáveis do processo, e eu quero apenas as variáveis do usuário, então eu faço:

[Environment]::GetEnvironmentVariables("User") | %{"{0}={1}" -f $_.Name,$_.Value} | sort

Mas isso gera isso apenas:

=

O [Environment]::GetEnvironmentVariables("User") funciona, o material depois é o problema.

    
por lonix 13.06.2018 / 19:50

1 resposta

6

O problema é que [Environment]::GetEnvironmentVariables("User") retorna uma tabela de hash, não uma coleção de objetos. Existem várias maneiras de conseguir o que você deseja. Aqui está um:

([Environment]::GetEnvironmentVariables("User")).GetEnumerator() | %{'{0} = {1}' -f $_.Key, $_.Value}
    
por 13.06.2018 / 20:31