PowerShell

时间:2016-11-26 01:36:42

标签: powershell operators

所以这看起来很简单,并且很容易猜到结果,但我似乎在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)总数数组。

1 个答案:

答案 0 :(得分:0)

在这里找到答案:Why do integers in PowerShell compare by digits?

为变量添加了[int]标记,现在效果很好。感谢您的建议。