Как вывести переменные среды на консоль в PowerShell?

118

Я начинаю использовать PowerShell и пытаюсь понять, как echoпреобразовать системную переменную среды в консоль, чтобы ее прочитать.

Ни одно из перечисленных ниже не работает. Первый просто печатает %PATH%, а второй ничего не печатает.

echo %PATH%
echo $PATH
Kitfox
источник

Ответы:

178

Приставьте к имени переменной префикс env:

$env:path

Вы также можете перечислить все переменные через envдиск:

Get-ChildItem env:
Матиас Р. Джессен
источник
21
Я люблю $Env:Path.Split(';')себя (выводить по одному каталогу в строке).
Bill_Stewart
1
Конечно, или$env:Path -split ';'
Матиас Р. Джессен
1
@AmirKatz Результат тот же, потому что две операции делают одно и то же :) -split- это оператор регулярного выражения, а String.Split()не
Матиас Р. Джессен
3
для непродолжительного использованияgci env:
navigaid
6

В дополнение к ответу Матиаса.

Хотя это не упоминается в OP, если вам также нужно увидеть специфические / связанные внутренние переменные Powershell , вам необходимо использовать Get-Variable:

$ Get-Variable

Name                           Value
----                           -----
$                              name
?                              True
^                              gci
args                           {}
ChocolateyTabSettings          @{AllCommands=False}
ConfirmPreference              High
DebugPreference                SilentlyContinue
EnabledExperimentalFeatures    {}
Error                          {System.Management.Automation.ParseException: At line:1 char:1...
ErrorActionPreference          Continue
ErrorView                      NormalView
ExecutionContext               System.Management.Automation.EngineIntrinsics
false                          False
FormatEnumerationLimit         4
...

К ним также относятся вещи, которые вы, возможно, установили в сценарии запуска вашего профиля.

not2qubit
источник