【发布时间】:2021-06-20 14:42:46
【问题描述】:
我在 PowerShell 中有这段代码。我需要对整数进行用户输入验证,并写入输出说明输入有什么问题并期待正确的输入。
$FromObj = "Please input object number"
$FromInput = Read-Host $FromObj
while(($FromInput -isnot [int])) {
#I also want to put in the while that the input has to be an integer, -gt 0, and -lt 800
Write-Output "Your input has to be a number."
$FromInput = Read-Host $FromObj
}
if ($FromInput -le 0) {
Write-Output "Your input has to be a number greater than 0!"
$FromInput = Read-Host $FromObj
}
elseif ($FromInput -ge 800) {
Write-Output "Your input has to be a number less than 800!"
$FromInput = Read-Host $FromObj
}
else {
$FromInput = $FromInput -as [int]
}
但是,这对我不起作用。你能帮我用上面显示的输出来验证它吗?
【问题讨论】:
-
我认为 IsNumeric 对我不起作用,我只需要整数验证。我不知道我是否正确,但有没有办法将其验证为整数?
-
第一个答案 (
$FromInput -match "^\d+$") 将为您执行此操作,在您确认字符串包含整数后,您只需将其转换为:[int]$FromInput。将您的($FromInput -isnot [int])替换为!($FromInput -match "^\d+$")并在您的第一个if之前放置一个$FromInput = [int]$FromInput -
你完全正确!像往常一样,我错了。你的回答很有魅力。我真诚地道歉并感谢您的帮助!
标签: powershell validation