PowerShell中的布尔值while循环

问题描述

如何在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. 提示用户输入名称
  2. 如果用户不知道姓名,则可以输入-1
  3. 键入-1时,将为用户显示所有名称
  4. 代码在循环时不会退出

解决方法

当用户在$selected中输入$true时,只需将"-1"设置为$name即可退出循环。

我真的不明白你为什么循环吗?

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...