这是我的第一个脚本,所以不要打败我!
我正在研究根据用户输入创建网络目录和AD组的脚本。以下是我到目前为止所获得的。它可以工作,但是我想做一些改进。
我想验证用户输入的长度。我找到了一篇文章(PowerShell ValidateLength with Read-Host),该文章解释了如何使用ValidateLength字符串检查用户的输入。这很好用,但是,我想将其包含在循环中。如果用户输入的字符不完全是X,请重试。现在,它只是出错了。
任何帮助将不胜感激!
[ValidateLength(2,2)]$Division = [string](Read-Host -Prompt 'Please enter the TWO digit division number ')
[ValidateLength(4,4)]$Matter = [string](Read-Host -Prompt 'Please enter the FOUR digit matter number ')
[ValidateLength(4,4)]$Client = [string](Read-Host -Prompt 'Please enter the FOUR digit client number ')
最佳答案
尽管各种[Validate
...属性都可用于变量,但这是非标准用法(很少有人知道它们)。当您确实想出错时,它效果最好。
如果您不这样做,请自己检查一下,然后决定在不想要的情况下该怎么办:
do {
$Division = [string](Read-Host -Prompt 'Please enter the TWO digit division number ')
if ($Divison.Length -ne 2) {
continue
}
$Matter = [string](Read-Host -Prompt 'Please enter the FOUR digit matter number ')
if ($Matter.Length -ne 4) {
continue
}
$Client = [string](Read-Host -Prompt 'Please enter the FOUR digit client number ')
if ($Client.Length -ne 4) {
continue
}
break
} while ($true)