我对 if 语句有疑问。
If (($null -eq $success) -or ($success -eq $false)) {
Write-Host "Hi!"
}
如果 $success 未定义(不存在),上述内容仍然会触发..
PS C:\> $success
PS C:\> $success -eq $false
False
PS C:\> $success -eq $true
False
PS C:\> $success = $false
PS C:\> $success -eq $false
True
PS C:\> $success -eq $true
False
PS C:\>
..因为未定义的变量既不是 $true 也不是 $false,因此它是 $false。
我希望未设置的变量不会“进入”If 语句,而当变量为 $false 时它会“进入”。我怎样才能实现这个目标?
要排除在给定变量不存在
时进入
if
语句主体的情况,请使用 Test-Path
调用,其路径基于由 变量提供者公开的 Variable:
驱动器 :
if ((Test-Path Variable:success) -and $success -eq $false) { # ...