这是一个非常简单的代码
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
问题是,您似乎是在作为字符串而不是整数进行比较,所以虽然100在数字上大于39,但在字母顺序上小于30。要修复此问题,您可以强制转换为如下整数:
do {
$size = Read-Host -Prompt "Enter a value "
}
until ( [int]$size -gt [int]39 )