PowerShell: Env: избегать усечения переменных среды

PowerShell отображает переменные среды, по одной строке для каждой. Если переменная имеет достаточно длинное значение, она усекается и добавляет многоточие:

> gci env:

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

Есть ли способ получить полные значения для всех переменных одновременно, как в стандартной командной строке? (ответы, приведенные для Powershell get-childitem env:path возвращает эллиптическую строку, как получить что-нибудь полезное? не применимы, тогда).

2 ответа

Решение

Форматирование по умолчанию усекает, укажите -Wrap и смотрите полный вывод.

gci env: | Format-Table -Wrap -AutoSize

Результат

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

или, если вы предпочитаете, чтобы выходные данные точно имитировали cmd.exe, попробуйте

cmd /c start /b set

Результат

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

Если вы хотите подражать set вывод из powershell без вызова cmd пытаться:

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

много печатать, поэтому оберните его в функцию:

function set {dir env: | %{"{0}={1}" -f $_.Name,$_.Value}}
Другие вопросы по тегам