В настоящее время я могу получить IP-адрес с DNS-сервера с помощью первой команды, показанной ниже. Однако становится утомительно вводить по одному DNS-серверу за раз и запускать команду. Я пробовал в прошлом запустить это, for /F %i in (dns.txt); do nslookup %i; > ips.txt;
и это работает. Однако я пытаюсь применить ту же концепцию к приведенной ниже команде. Как мне разрешить DNS-адрес из текстового файла, преобразовать IP-адреса и вывести результат в новый текстовый файл?
Работает только для 1 DNS на IP-адрес
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a > ips.txt
решение1
Думаю, ошибка в >
операторе. Это фактически обрезает файл и затем записывает вывод в ips.txt
файл, но вы в цикле и обрезаете файл каждый раз. Попробуйте >>
вместо этого оператор.
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a >> ips.txt
РЕДАКТИРОВАТЬ: Чтобы выполнить цикл по файлу и получить IP-адрес каждого DNS-хоста, нужно сделать что-то вроде этого:
for /f "tokens=*" %%A in (yourhostsfile.txt) do nslookup %%A >> ips.txt