我发生了一个奇怪的问题。我正在从名称中解析一个数字,看起来像这样:($env:COMPUTERNAME).Substring(11, 2)。该名称通常类似于abcxyzhij099w。我99在那个例子中。然后,我使用一系列-gt -lt调用来评估它,例如elseif ($time -ge 60 -and $time -lt 120)。
我的问题是我目前正在评估数字62。它成功地计算它的不足70,99以及620,但之间的任何东西100和619失败。我包含了一张图片,但我不知道为什么会发生这种情况。手动设置$time为62可以通过所有检查,但是从名称进行解析会导致检查失败。
我已验证其长度为2,并将其gm显示为system.string。我想我只是想念一些难以置信的小东西,但我以前从未遇到过。任何援助将不胜感激!
PowerShell会在比较运算符的右侧“投射”值以匹配左侧值的类型。因此,您将看到字符串比较的结果。如果要进行数字比较,请尝试反转比较(即,而不是$time -lt 619使用619 -gt $time),或将左侧操作数强制为数字(例如[int]$time -lt 619)。
| 归档时间: |
|
| 查看次数: |
29 次 |
| 最近记录: |