при запуске в командном файле ничего не происходит.
Вы должны получить сообщение об ошибке, подобное следующему:
C:\test>cat foo.cmd
for /f "skip=4 usebackq tokens=2" %a in (`nslookup microsoft.com 8.8.8.8`) do echo %a > ip.txt
C:\test>foo
a was unexpected at this time.
C:\test>for /f "skip=4 usebackq tokens=2" a > ip.txt
Эта ошибка вызвана тем, что вам нужно использовать %%
вместо %
внутри командного файла.
Reference FOR - Условно выполнить команду несколько раз.:
Синтаксис-FOR-Files
FOR %%parameter IN (set) DO command
...
Параметры FOR
Первый параметр должен быть определен с использованием одного символа, например буквы G
FOR %%G IN
...
Если вы используете команду FOR
в командной строке, а не в пакетной программе, используйте только один знак процента: %G
вместо %%G
Так что в вашем случае, если вы хотите использовать команду for
внутри пакетного (cmd
) файла, тогда каждый % должен быть заменен на %% следующим образом:
for /f "skip=4 usebackq tokens=2" %%a in (`nslookup microsoft.com 8.8.8.8`) do echo %%a > C:\ip.txt