PowerShell 是否将环境变量与普通变量不同?

exp*_*ses 2 powershell

这让我摸不着头脑。任何人都可以解释这里发生了什么吗?

PS C:\Users\xxx> $foo = ""
PS C:\Users\xxx> $foo -eq ""
True
PS C:\Users\xxx> $env:bar = ""
PS C:\Users\xxx> $env:bar -eq ""
False
PS C:\Users\xxx> $env:bar = "a"
PS C:\Users\xxx> $env:bar -eq "a"
True
PS C:\Users\xxx>
Run Code Online (Sandbox Code Playgroud)

Mic*_*aum 6

环境变量不能为空。这一行:$env:bar = ""实际上删除了变量。试试下面的脚本,你会看到变量中只保留了“ABC”。

Remove-Item Env:\bar
$env:bar = ""
$env:bar
$env:bar = "ABC"
$env:bar
$env:bar = ""
$env:bar
Get-Item Env:\bar
Run Code Online (Sandbox Code Playgroud)