PowerShell: Env: уникайте скорочення змінних середовищ


17

PowerShell відображає змінні середовища, по одному рядку для кожної. Якщо змінна має досить довге значення, вона обрізається і додається еліпсис:

> gci env:

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

Чи є спосіб отримати повноцінні значення для всіх варіантів одночасно, як у стандартному підказці cmd? (відповіді, наведені для Powershell get-childitem env: шлях повертає зниклий один рядок, як тоді щось корисне? не застосовуватиметься тоді).


Я витратив годину на пошук способів змусити PowerShell відобразити повний вміст змінної середовища мого шляху. Він завжди скорочує його до 2452 символів, з позначками еліпсису або без них, навіть якщо я задаю більш широке форматування. Це унеможливлює ставлення до ПС як до іншого, крім тривіально корисного. Моя думка PS полягає в тому, що це POS, і нічого цього не змінилося. Я прочитав сотні блогів та результатів пошуку, і ніхто не має рішення. Навіть тут.
Suncat2000

Відповіді:


23

Форматування скорочень за замовчуванням, вкажіть -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\

Це вже дуже добре. Будь-який спосіб отримати той же формат, що і стандартний cmd-запит? Можливо, виклик cmd.exe з запиту PowerShell?
sancho.s ReinstateMonicaCellio

Добре, ось що я запропонував.
sancho.s ReinstateMonicaCellio

4

Якщо ви хочете наслідувати setвисновок із Powerhell, не викликаючи cmdспробу:

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

багато вводити текст, тому ввімкніть це у функції:

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

Обидва варіанти працюють нормально.
sancho.s ReinstateMonicaCellio
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.