13

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

> gci env:

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

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

2 ответа2

16

Форматирование по умолчанию усекает, укажите -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\
4

Если вы хотите эмулировать вывод set из powershell без вызова cmd попробуйте:

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .