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}}