Попытка очистить мой командный файл ... Возникли проблемы со следующей командой, по-прежнему выводящей некоторую информацию:

FOR /F "tokens=2" %%a in ('nslookup myip.opendns.com resolver1.opendns.com') do (set PublicIP=%%a)

Он продолжает выводить:

Non-authoritative answer:

Я пробовал следующее, но ничего не работает ...

>NUL
>NUL 2>1

(и пару других, которые я забыл)

2 ответа2

1

Придумал решение, немного поменял вещи вокруг.

FOR /f "usebackq tokens=2,3" %%a in ('nslookup myip.opendns.com resolver1.opendns.com') do (set PublicIP=%%a)
0

Я нашел решение, которое может помочь вам, в моей ситуации это было необходимо, чтобы я мог получить свой публичный IP-адрес без предупреждения неавторизованного ответа:

FOR /F "SKIP=4 TOKENS=2" %%a IN ('"NSLOOKUP myip.opendns.com resolver1.opendns.com 2>NUL"') DO ECHO %%a

Обратите внимание на кавычки 'и' в скобках;)

Я обнаружил это случайно после двух дней поиска, когда прочитал следующее объяснение о разборе вывода команды for для циклов внутри пакетных файлов: http://ss64.com/nt/for_f.html

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