В настоящее время я могу получить IP-адрес с DNS-сервера с помощью 1-й команды, показанной ниже. Тем не менее, он утомительно набирает один 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 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .