【发布时间】:2019-06-15 05:29:03
【问题描述】:
我正在尝试使变量等于一个范围。 我的脚本包含用户输入,并且此输入必须在一定范围内。我将在脚本中使用该范围几次,所以我希望它是一个变量。 这是我尝试过的:
$serverrange = "1..18"
我试过了
$serverrange = 1..18
我已经用谷歌搜索了它,但我找不到太多关于它的信息。问题是 PowerShell 没有将其视为一个范围,而是将其视为 1..18 字面意思。 因此,如果我执行 Write-Output $serverrange 它显示为“1..18”。所以我的问题是如何将其视为一个范围,或者如何更改脚本以合并该范围? 以下是脚本的其余部分:
#user input for how many servers will be tested
$numofservers = Read-Host -Prompt "How many servers are being tested?"
if($numofservers -eq $serverrange) {
"Proceed"
}
else {
"Server limit exceeded"
}
编辑:没有意识到 $serverrange = 1..18 有效。
【问题讨论】:
-
将范围括在引号中使其成为字符串。 [grin] 同样,
Read-Hostcal 返回 ... string。您的第二个示例给出了适当的范围,尝试使用$VarName.GetType()测试 $Variables 以查看变量中的内容。 -
您想到哪种 .net 类型? .Net 是否像其他平台/语言一样具有某种“范围”类型?
-
@Lee_Dailey,感谢您的回答。我没有意识到第二个选项有效,我的错。如果用户输入在此范围内,您知道如何使用户输入显示“继续”吗?
-
@techguy1029 - 你的测试是针对
$ServerLimit但我看不出你在哪里设置的。如果您想查看$numofservers是否在范围内,请将其强制为 [int],然后使用$numofservers -in $serverrange。 -
成功了!谢谢
标签: powershell variables scripting range