循环直到收到正确的验证输入Powershell

thtygnil  于 2023-04-21  发布在  Shell
关注(0)|答案(1)|浏览(109)

我想通过代码保持循环,直到它收到正确的验证输入。如果用户输入是,该脚本可以继续执行。如果用户输入否,它会要求用户检查从以前的脚本输出。如果用户输入任何东西比没有,我希望程序让用户知道它必须是一个是或否的答案,但也要循环回去问问题。我的代码中缺少了什么来允许这样做?

$user_input = Read-Host "Does id look correct? [yes/no]"

if ($user_input -eq 'yes'){
    Write-Host "Running Pre- script..."

    $SQLServer3 = "ServerB" 
    $Database3 = 'master'

    Invoke-Sqlcmd -ServerInstance $SQLServer3 -Database $Database3 -InputFile "C:\Users\Documents\Scripts\Restore.txt"
} 

    elseif ($user_input -eq 'no') {
     Write-Host "Check id"

    }
   else {

    Write-Host "Answer must be 'yes' or 'no'"

}
bxjv4tth

bxjv4tth1#

使用PrompForChoice,你的脚本可以看起来像这样,因为它已经确保了必须选择其中一个 * 选项 *:

if($Host.UI.PromptForChoice($null, 'Does id look correct?', ('&Yes', '&No'), 0) -eq 0) {
    Write-Host 'Running Pre- script...'

    $invokeSqlcmdSplat = @{
        ServerInstance = 'ServerB'
        Database       = 'master'
        InputFile      = 'C:\Users\Documents\Scripts\Restore.txt'
    }
    Invoke-Sqlcmd @invokeSqlcmdSplat
}
else {
    Write-Host 'Check id'
}

相关问题