不断获得用户输入

时间:2015-02-21 03:23:33

标签: powershell

在用户输入IP /计算机名称并在运行其余代码之前对其进行ping操作以确保它是有效的IP /计算机名称之后,我有这个部分。如果是,它会继续执行我的其余代码,所以没有问题。

我遇到的问题是当IP无效时从头开始“重启”。我有它所以它提示用户输入一个新的机器名称,但从那里我不能让它重新ping并尝试再次验证。截至目前,它需要新的用户输入,并继续使用我的代码,而不是重新运行ping序列。

我想我需要的是某种循环来保持检查用户输入,如果他们输入无效的IP,直到他们这样做,但我只是没有知识来解决这个问题。

非常感谢任何帮助......我觉得我太近了!

#-----Start Ping Target Machine-----#
Write-Host "Pinging Machine..." -Fore Yellow
$Ping = Test-Connection $machine -Quiet
if ($Ping -eq $true) {
    Write-Host "Machine Found!" -Fore DarkGreen
}
else {
    if ($Ping -eq $false) {
        Write-Host "Machine Not Found - Check Name" -Fore Red
        $machine = Read-Host 'What is the machine name?'
    }
}
#-----End Ping Target Machine-----#

1 个答案:

答案 0 :(得分:0)

将代码置于无限循环中并在ping成功时中断:

while ($true)  # Loop continuously
{
    $machine = Read-Host 'What is the machine name?'
    Write-Host "Pinging Machine..." -Fore Yellow
    $Ping = Test-Connection $machine -Quiet
    if ($Ping)  # Check the ping (no need for '-eq $true')
    {
        Write-Host "Machine Found!" -Fore DarkGreen
        break;  # Break the loop since ping was successful
    }
    else
    {
        Write-Host "Machine Not Found - Check Name" -Fore Red
    }
}