在 Windows cmd 中,我可以使用 echo %VARIABLENAME%
回显任何环境变量,例如
但是在powershell中,这种行为是不一致的,我无法理解。对于某些变量,例如 $HOME
,我可以执行与 Windows cmd 中相同的操作 (echo $VARIABLENAME
)。
但是对于其他一些变量,我不能简单地 echo 而是必须使用 .NET 的类方法,例如
我愿意:
- 了解 Powershell 和 Windows cmd 之间的区别。为什么它们在访问和打印环境变量时表现不同。
- 理解为什么某些变量在 powershell 中是可回显的,而其他变量则不然。这背后的规则是什么。
我是 powershell 新手。这个问题的目的不仅仅是打印变量,而是了解powershell中的工作原理以及windows cmd之间的区别,以便我可以更好地使用它。
最佳答案
PowerShell 通过 $Env:
范围公开环境变量(您可以在此处阅读有关 scopes 的更多信息)
因此,要访问 USERPROFILE
环境变量,您可以执行以下操作(注意,我在这里使用 Write-Host 代替 echo,请参阅 this answer 了解有关二):
写入主机 $Env:USERPROFILE
PowerShell 还公开了许多自动变量,所有脚本和命令都可以使用这些变量。
例如,$HOME
就是这样一个自动变量。
有关这些的更多信息,请参阅 Automatic Variables
关于windows - 从 powershell 回显/访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72741459/