Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell “数字”;“范围内”;报告内容为;“不在范围内”;第一次尝试_Powershell_Switch Statement - Fatal编程技术网

Powershell “数字”;“范围内”;报告内容为;“不在范围内”;第一次尝试

Powershell “数字”;“范围内”;报告内容为;“不在范围内”;第一次尝试,powershell,switch-statement,Powershell,Switch Statement,我正在Powershell中编写一个脚本,允许管理员和我自己执行两个基本的Active Directory任务,而无需打开ADUC和拨弄菜单。我有数字1-4可以选择,允许的响应应该小于1或大于/等于5(我也尝试过大于4) 接受回答“2”和“3”,脚本运行正常;但是,读取主机拒绝响应“1”和“4”请输入范围内的数字当在提示下再次输入它们时,它会正常工作: What would you like to do today? 1. Reset a user's password 2. Enable a

我正在Powershell中编写一个脚本,允许管理员和我自己执行两个基本的Active Directory任务,而无需打开ADUC和拨弄菜单。我有数字1-4可以选择,允许的响应应该
小于1
大于/等于5
(我也尝试过
大于4

接受回答“2”和“3”,脚本运行正常;但是,读取主机拒绝响应“1”和“4”
请输入范围内的数字当在提示下再次输入它们时,它会正常工作:

What would you like to do today?
1. Reset a user's password
2. Enable a user account
3. Disable a user account
4. Unlock a user
   Number: 4
Please enter a number within range.: 4
   Who needs to be unlocked?:
我很困惑为什么相同的代码片段会拒绝,然后允许相同的响应。如果需要的话,我的代码的其余部分只是开关,谢谢您的任何输入

1
 {}
2
 {}
3
 {}
4
 {}

[int]$Response=0
第一次响应始终为零。”
-PetSerAl


“PetSerAl表示,您的前两行是反向的。实际上可能只是
[int]$Response=Read Host“Number”
。作为旁白,您应该看看哪些选项可以为您完成大部分工作。”
-Matt

在去掉下面这行代码后,代码工作得很好。我不确定这会如何影响输入,但它解决了这个问题。谢谢

更新代码:
$Response=读取主机“编号”

虽然($Response-lt 1-或$Response-ge 5)

为什么不在启动switch语句之前使用if限定符呢?这样,如果输入不正确,您可以循环返回,如果输入正确,则可以继续执行?
[int]$Response=0
第一个响应始终为零。PetSerAl表示前两行是向后的。实际上可能只是
[int]$Response=读取主机“编号”
。顺便说一句,你应该看看这项工作的大部分是由谁完成的。@Matt我以前从未见过
选择,这太神奇了。
1
 {}
2
 {}
3
 {}
4
 {}