所以这看起来很简单,并且很容易猜到结果,但我似乎在powershell中得到了一个非常奇怪的结果。
基本上我在构建一个包含未知数量对象的数组,然后针对.Count属性运行一个运算符。
示例:
$a = New-Object System.Collections.ArrayList
$n = 0
while ($n -ne 27) {$n++; $a.Add("Test line")}
# Array built, the .Count property should be 27
$bool = $false
$number = 2
if ($number -gt $a.Count) {$bool = $true}
# This correctly gives me $bool as $false
$number = 3
if ($number -gt $a.Count) {$bool = $true}
# This incorrectly gives me $bool as $true, and does so when $number is
# greater than 3.
有关于此的任何想法吗?我以前从未见过这个。上面是一个简化的例子,但基本上我将对象拉入一个数组,用Read-Host
获取用户输入,我想比较用户输入是否大于(-gt
)总数数组。
答案 0 :(得分:0)
在这里找到答案:Why do integers in PowerShell compare by digits?
为变量添加了[int]标记,现在效果很好。感谢您的建议。