2

有人可以向我解释为什么这些比较会以他们的方式起作用。我的一个脚本中有一个错误,我花了一点时间才能完成。我正在使用读取主机并输入一个数字。它将其存储为字符串。

Write-Host "(`'2`' -gt 9 ) = " ('2' -gt 9 )
Write-Host "(2 -gt 9 ) = " (2 -gt 9 )
Write-Host "(`'2`' -gt 10 ) = " ('2' -gt 10 )

如果您将字符串与 Int 进行比较,它是否使用 Ascii 值?如果是这样,为什么第一个显示$false,它应该是$true。

那么当你将 int 更改为 10 时它变成了 $true 是怎么回事。

4

1 回答 1

0

在比较时,右值被转换为左值的类型。因此,'2' -gt 9变为'2' -gt '9',即为假,'2' -gt 10变为'2' -gt '10',即为真。

于 2010-05-26T18:55:17.520 回答