windows - 从 powershell 回显/访问环境变量

标签 windows powershell cmd environment-variables echo

在 Windows cmd 中,我可以使用 echo %VARIABLENAME% 回显任何环境变量,例如

enter image description here

但是在powershell中,这种行为是不一致的,我无法理解。对于某些变量,例如 $HOME,我可以执行与 Windows cmd 中相同的操作 (echo $VARIABLENAME)。

enter image description here

但是对于其他一些变量,我不能简单地 echo 而是必须使用 .NET 的类方法,例如

enter image description here

我愿意:

  1. 了解 Powershell 和 Windows cmd 之间的区别。为什么它们在访问和打印环境变量时表现不同。
  2. 理解为什么某些变量在 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/

相关文章:

windows - 在 Windows 上优雅地终止进程

windows - 发送期间 SMTP 客户端失败有关参数

Powershell,OOP,为什么返回$false不退出类方法

batch-file - "&&"在这个批处理文件中做了什么?

cmd - 如何在windows cmd中调用ballerina服务

windows - "Not enough storage to process this command. (8)"我无法休眠

windows - PE 文件格式 - 节表和第一节之间是什么?

windows - 如何检查 Microsoft 补丁的适用性

powershell - 在 powershell 中使用 ToString 格式化日期

powershell - 如何从 Powershell 设置 TeamCity 构建状态?