PowerShell: Env: Evite truncamento de variáveis ​​de ambiente


16

O PowerShell exibe variáveis ​​de ambiente, uma linha para cada. Se uma variável tiver um valor longo o suficiente, ela será truncada e anexada uma elipse:

> gci env:

Name                           Value
----                           -----
<suppressed lines>
PSModulePath                   C:\Windows\system32\WindowsPowerSh...
<suppressed lines>

Existe alguma maneira de obter valores completos para todos os vars de uma vez, como em um prompt padrão do cmd? (as respostas dadas para o Powershell get-childitem env: o caminho retorna uma linha, como obter algo útil? então não se aplica).


Passei uma hora procurando maneiras de obter o PowerShell para exibir o conteúdo completo da variável de ambiente do meu caminho. Ele sempre o trunca para 2452 caracteres, com ou sem reticências, mesmo se eu especificar uma formatação mais ampla. Isso torna impossível tratar o PS como algo além de trivialmente útil. Minha opinião do PS é que é um PDV e nada mudou. Eu li centenas de blogs e resultados de pesquisa e ninguém tem uma solução. Nem aqui.
precisa saber é o seguinte

Respostas:


21

A formatação padrão trunca, especifique -Wrap e veja a saída completa.

gci env: | Format-Table -Wrap -AutoSize

Resultado

PSModulePath            C:\Users\KNUCKLE-DRAGGER\Documents\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

ou se você preferir que a saída simule exatamente o cmd.exe, tente

cmd /c start /b set

Resultado

PSModulePath=C:\Users\KNUCKLE-DRAGGER\Documents\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

Isso já é muito bom. Alguma maneira de obter o mesmo formato de um prompt de cmd padrão? Talvez esteja invocando o cmd.exe no prompt do PowerShell?
sancho.s Reinstala Monica

Bom, era isso que eu estava propondo.
sancho.s Reinstala Monica

4

Se você deseja emular a setsaída do PowerShell sem chamar, cmdtente:

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

muita digitação, então envolva-a em uma função:

function set {dir env: | %{"{0}={1}" -f $_.Name,$_.Value}}

Ambas as opções funcionam bem.
sancho.s Restabelecer Monica
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.