这是一个非常简单的代码
do {
$size = Read-Host -Prompt "Enter a value "
}
until ( $size -gt 39 )
对于介于100和390之间的值进入无限循环,但对于低于99和高于390的值,它可以完美地运行。
无限循环,即使值大于39
Enter a value : 38
Enter a value : 37
Enter a value : 100
Enter a value : 110
Enter a value : 200
Enter a value : 300
Enter a value : 390
将值更改为大于49
do {
$size = Read-Host -Prompt "Enter a value "
}
until ( $size -gt 49 )
现在范围是49到490
我做错了吗? powershell版本是3.0.-1.-1
答案 0 :(得分:4)
问题是,你似乎是比较字符串而不是整数,所以100在数字上超过39,按字母顺序它小于30.要修复,你可以像这样强制转换为整数:
do {
$size = Read-Host -Prompt "Enter a value "
}
until ( [int]$size -gt [int]39 )