我开始使用PowerShell,并试图弄清楚如何将echo系统环境变量发送到控制台来读取它。以下两种方法都不起作用。第一个只打印%PATH%,第二个不打印任何内容。
echo
%PATH%
echo %PATH% echo $PATH
tp5buhyn1#
变量名称前缀为env:
env
$env:path
例如,如果要打印环境值“minishift_username”的值,则命令为:
$env:MINISHIFT_USERNAME
您还可以通过env驱动器枚举所有变量:
Get-ChildItem env:
n1bvdmb62#
除了马蒂亚斯的回答。尽管OP中没有提到,但如果您还需要查看PowerShell特定/相关的内部变量,则需要使用Get-Variable:
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 ...
其中还包括您可能在配置文件启动脚本中设置的内容。
vc6uscn93#
在我看来,以下方法效果最好:
Get-Item Env:PATH
1.它比Get-ChildItem更短,因此更容易记住(没有环境变量的层次结构)。1.该命令与setting environment variables with Powershell使用的方式之一对称。(例如:Set-Item -Path env:SomeVariable -Value "Some Value")1.如果您养成了这样做的习惯,您将记住如何列出所有环境变量:只需省略条目部分。(例如:Get-Item Env:)起初我觉得语法很奇怪,但在我理解了提供者的概念后,事情开始变得更有意义了。从本质上讲,PowerShell允许您以类似于文件系统的方式导航系统的不同组件。Env:中尾随的冒号的意义是什么?试着列出所有通过供应商提供的“驱动器”,如下所示:
Get-ChildItem
Set-Item -Path env:SomeVariable -Value "Some Value"
Get-Item Env:
Env:
PS> Get-PSDrive
我只看到几个结果(Alias、C、Cert、D、Env、Function、HKCU、HKLM、Variable、WSMan)。很明显,Env只是一个特定的“驱动器”,冒号是任何使用过Windows的人熟悉的语法。您可以像这样遍历驱动器:
Env
Get-ChildItem C:\Windows Get-Item C: Get-Item Env: Get-Item HKLM: Get-ChildItem HKLM:SYSTEM
yacmzcpb4#
这是我自己遇到的。我想查看路径,但每条路径都在一条单独的线上。这会打印出路径,并用分号将其拆分。$env:path.Split(";")
$env:path.Split(";")
v8wbuo2f5#
作为对其他答案的补充,在列出所有环境变量的情况下,为了简洁起见,您可以使用dir、ls和gci(Get-ChildItem的缩写),因为它们是Get-ChildItem的三个别名。因此,以下所有命令都是相同的,可以在此上下文中使用:
dir
ls
gci
Get-ChildItem Env:
或
dir Env:
ls Env:
gci Env:
更多信息请访问shellgeek。此外,作为实际用例,您可以获得按字母顺序排序的环境变量列表,如下所示:
Get-ChildItem Env: | Sort Name
仅供参考:以上命令中不能将Get-Item Env:替换为Get-ChildItem Env:。因此,在这种情况下,GetChild-Item比this answer by BitBite中提到的Get-Item更可取。
GetChild-Item
Get-Item
5条答案
按热度按时间tp5buhyn1#
变量名称前缀为
env
:例如,如果要打印环境值“minishift_username”的值,则命令为:
您还可以通过
env
驱动器枚举所有变量:n1bvdmb62#
除了马蒂亚斯的回答。
尽管OP中没有提到,但如果您还需要查看PowerShell特定/相关的内部变量,则需要使用
Get-Variable
:其中还包括您可能在配置文件启动脚本中设置的内容。
vc6uscn93#
在我看来,以下方法效果最好:
1.它比
Get-ChildItem
更短,因此更容易记住(没有环境变量的层次结构)。1.该命令与setting environment variables with Powershell使用的方式之一对称。(例如:
Set-Item -Path env:SomeVariable -Value "Some Value"
)1.如果您养成了这样做的习惯,您将记住如何列出所有环境变量:只需省略条目部分。(例如:
Get-Item Env:
)起初我觉得语法很奇怪,但在我理解了提供者的概念后,事情开始变得更有意义了。从本质上讲,PowerShell允许您以类似于文件系统的方式导航系统的不同组件。
Env:
中尾随的冒号的意义是什么?试着列出所有通过供应商提供的“驱动器”,如下所示:我只看到几个结果(Alias、C、Cert、D、Env、Function、HKCU、HKLM、Variable、WSMan)。很明显,
Env
只是一个特定的“驱动器”,冒号是任何使用过Windows的人熟悉的语法。您可以像这样遍历驱动器:
yacmzcpb4#
这是我自己遇到的。我想查看路径,但每条路径都在一条单独的线上。这会打印出路径,并用分号将其拆分。
$env:path.Split(";")
v8wbuo2f5#
作为对其他答案的补充,
在列出所有环境变量的情况下,为了简洁起见,您可以使用
dir
、ls
和gci
(Get-ChildItem的缩写),因为它们是Get-ChildItem
的三个别名。因此,以下所有命令都是相同的,可以在此上下文中使用:
或
或
或
更多信息请访问shellgeek。
此外,作为实际用例,您可以获得按字母顺序排序的环境变量列表,如下所示:
仅供参考:以上命令中不能将
Get-Item Env:
替换为Get-ChildItem Env:
。因此,在这种情况下,GetChild-Item
比this answer by BitBite中提到的Get-Item
更可取。