2015-02-21 3 views
0

У меня есть эта деталь на месте после того, как пользователь вводит имя IP/машины и пингует ее перед запуском остальной части кода, чтобы убедиться, что это допустимое имя IP/машины. Если это так, оно продолжается до остальной части моего кода, поэтому проблем нет.Непрерывно получать данные пользователя

Проблема, с которой я столкнулся, заключается в том, чтобы получить ее «перезапуск» с самого начала, когда IP недействителен. У меня есть он, поэтому он предлагает пользователю ввести новое имя машины, но оттуда я не могу заставить его перезагрузить и снова попытаться проверить. На данный момент он принимает новый пользовательский ввод и просто продолжает мой код вместо повторного запуска последовательности 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-----# 

ответ

0

Поместите код внутри бесконечного цикла и ломаются, когда пинг успешно:

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 
    } 
} 
Смежные вопросы