【发布时间】:2013-04-01 12:28:05
【问题描述】:
看着help section about_Comparison_Operators of PowerShell这个我明白了:
PS C:\> $false,$false -eq $true
PS C:\>
左侧没有任何内容与右侧匹配,因此即使是 $null,也不会返回任何内容。
我不明白:
PS C:\> $true -eq $false,$false
True
PS C:\>
是不是因为它首先执行 $true -eq $false 返回 False,然后采用该 False 并执行 $false -eq $false 返回 True ?
更多信息
下面返回 false 的原因是因为它将字符串与数组进行比较,对吗?字符串不等于数组。
PS C:\> "abc" -eq "abc","def"
False
回答?
更多挖掘表明$true 等于一个对象。
PS C:\> $true -eq [array]
True
PS C:\> $true -eq [string]
True
PS C:\> $true -eq [int]
True
PS C:\> $true -eq [bool]
True
重要的是这些对象的值。
PS C:\> $true -eq [int]0
False
【问题讨论】:
-
+1 好问题,但我能问一下您需要它吗?我无法看到可以使用它的场景。
-
了解 PowerShell 的工作原理。还看着link 不知道为什么
"abc" -eq "abc", "def"不起作用。
标签: powershell compare logic equals