Проблема с циклом DoUntil.Сценарий должен взять URL, затем спросить, что с ним делать, и выдать результат после того, как пользователь выберет номер (1-4), и с выводом снова выдаст меню, и пользователь может выбрать другой номер, если он хочет, или закончить сценарий.набрав 'X'.
Но этот скрипт работает по-другому, он запрашивает URL, после того, как я выберу номер, и после этого он снова запрашивает URL и снова номер и после этого (еслинапример, я выберу дважды одно и то же число) это принесет мне значение 2 URL вместе.
Пожалуйста, посоветуйте, что я делаю не так.
write-host ""
write-host "Past URL that you need to check"
write-host ""
write-host -nonewline "Type your URL and press Enter: "
$URLok = read-host
write-host ""
if ($URLok.Length -lt 1) {
write-host "Invalid selection"
}
do {
write-host "What do you want to do with this URL?"
write-host ""
write-host "DNS - Selection 1"
write-host " MX - Selection 2"
write-host " NS - Selection 3"
write-host "TXT - Selection 4"
write-host ""
write-host "X - Exit"
write-host ""
write-host -nonewline "Type your choice and press Enter: "
$choice = read-host
$ok = $choice -match '^[1234x]+$'
if ( -not $ok) {
write-host "Invalid selection"
}
switch -Regex ( $choice ) {
"1"
{
[System.Net.Dns]::resolve($URLok)
}
"2"
{
Resolve-DnsName -Name $URLok -Type MX -DnsOnly | select Name,Type,NameExchange
}
"3"
{
Resolve-DnsName -Name '888ladies.com' -Type NS -DnsOnly | select Name,Type,NameHost,PrimaryServer
}
"4"
{
Resolve-DnsName -Name $URLok -Type TXT | select Name,Type,Strings
}
"5"
{
write-host ""
write-host "Past URL that you need to check"
write-host ""
write-host -nonewline "Type your URL and press Enter: "
$URLok = read-host
write-host ""
}
}
} while($choice -ne "X")
Ps And Littleпримечание: в параметрах 2-3-4 у меня есть 'Resolve-DNSName
', но этот скрипт не будет показывать его на консоли до завершения цикла doUntil
.Таким образом, я могу видеть результат, только если я выберу 'X' и закончу цикл