问题描述
如何在Powershell中使用布尔值控制while循环?
param
(
[Parameter(Mandatory = $true,HelpMessage = "Name. -1 for all names.")]
[string]$name
)
try
{
$selected = $false
while($selected -eq $false)
{
if($name -eq "-1")
{
write-host "Displaying all names"
Get-Name | select name
}
else
{
# do some code here
$selected = $true
}
}
}
catch
{
'Name {0} was not found. Provide a valid name.' -f $name
exit(0)
}
预期行为:
- 提示用户输入名称
- 如果用户不知道姓名,则可以输入-1
- 键入-1时,将为用户显示所有名称
- 代码在循环时不会退出
解决方法
当用户在$selected
中输入$true
时,只需将"-1"
设置为$name
即可退出循环。
我真的不明白你为什么循环吗?