Учитывая вашу команду FINDSTR, которая определяет местоположение ваших т строк (оно может быть простым или сложным, как вам нужно)
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 ...
dbenham: это работает отлично! Благодаря! Paul Safier –
@PaulSafier - Если у вас есть ответ, который полностью решает вашу проблему, вы должны принять его, нажав галочку возле левого верхнего угла. Это действие позволяет другим узнать, на какой вопрос был дан ответ, он награждает вас 2 очками репутации и награждает ответный стенд 15 очками. Только один ответ может быть принят по данному вопросу. Вы также можете опросить ответы, как только достигнете 15 очков. Завышенный голос наделяет ответчика 10 очками. Вы можете опросить столько ответов, сколько найдете, даже ответы на вопросы других народов. – dbenham
Готово. Благодарю. - Пол Сафье. –