Показати всі змінні середовища із запущеного сценарію PowerShell


104

Мені потрібно відобразити всі налаштовані змінні середовища в сценарії PowerShell під час виконання. Зазвичай під час відображення змінних оточуючого середовища я можу просто використовувати одне з наступних в оболонці (серед інших методів, але це прості):

gci env:*
ls Env:

Однак у мене скрипт викликається з іншої програми, і коли я використовую один із зазначених вище викликів у скрипті, замість того, щоб бути представлений змінними середовища та їх значеннями, я замість цього отримую список System.Collections.DictionaryEntryтипів замість змінних та їх значень . Як всередині сценарію PowerShell я можу відображати всі змінні середовища?

Відповіді:


156

Коротша версія:

gci env:* | sort-object name

Це відобразить і ім'я, і ​​значення.


1
Чи можете ви пояснити, чому він так поводиться і як ваша команда це виправляє?
Девід Ференчі Рогожан

3
Це ознака прогресу, тому що це envбуло занадто просто. Чорт за вас, $ люди.
матчек


14

Нарешті я знайшов шлях до рішення, повторюючи кожен запис у словнику:

(gci env:*).GetEnumerator() | Sort-Object Name | Out-String

не працює на Linux для мене. Вам не вистачає gciдля отримання предметів для дитини?
Туфір

Я не пробував цього на corehell core, але gci є у моїй відповіді. Зауважте, що це питання стосується [powershell], а не [powershell-core], тому рішення можуть не працювати для останнього.
Бендер Найбільший

7

Коротка версія з фільтром підключення :

gci env: | where name -like 'Pro*'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.