Учитывая вашу команду FINDSTR, которая находит ваши m строк (она может быть настолько простой или сложной, насколько вам нужно)
findstr "search" "fileName.txt"
затем вы можете обработать результаты этой команды с помощью цикла FOR/F. Вы можете выйти из цикла после первой совпадающей строки, используя GOTO.
for /f "delims=" %%A in ('findstr "search" "fileName.txt"') do (
echo %%A >>"outFile.txt"
goto :break
)
:break
Команда FOR — одна из самых сложных команд, доступных для пакетной обработки. Есть много вариантов. Вы можете получить справку по команде, введя HELP FOR
или FOR /?
в командной строке.
Параметр "DELIMS=" отключает разбор строки на токены. Без этой опции FOR /F разбил бы каждую строку на токены, разделенные пробелами или символами табуляции. Список разделителей может быть установлен на другие символы или, в вашем случае, не установлен ни на что.
Приведенный выше код будет пропускать строки, начинающиеся с ;
, потому что FOR /F будет пропускать все строки, начинающиеся с символа EOL — по умолчанию ;
. Вы можете изменить символ EOL на любой отдельный символ. Но если вы не знаете, с чего может начинаться ваша совпадающая строка, то вы не знаете, какой символ использовать для EOL. Синтаксис для полного отключения парсинга всех токенов и пропуска строки EOL странный:
for /f delims^=^ eol^= %%A in (...) do ...
person
dbenham
schedule
16.01.2013