Пакетный файл для чтения текстового файла и поиска строки.Если найдена строка, верните код ошибки 1 - PullRequest
0 голосов
/ 19 декабря 2018

Я хотел бы прочитать текстовый файл и найти строку внутри текстового файла.Если искомая строка присутствует, необходимо завершить пакет с errorcode 1.

Пример:

Text inside a txt file would be like (123;345;678;abc)
i need to search the string / numeric value (abc or 123)

Если найдено, пакет должен вернуть 1.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

, если текстовый файл содержит abc и / или 123, затем завершите работу с 1, правильно?

findstr "abc 123" file.txt && (exit /b 1) || (exit /b 0)

findstr возвращает 0, если найдена строка(«Успех») или 1, если строка не найдена («Ошибка») (в точности так, как вам нужно).Если вы можете жить с 0 для "найдено" и 1 для "не найдено":

findstr "abc 123" file.txt
exit /b %errorlevel%
0 голосов
/ 19 декабря 2018

Согласно find , вы должны быть в состоянии выполнить это так:

find "myTextToSearch" C:\\Path\\To\\File.txt

Но, как вы можете видеть в документации, это состояние выхода:

Errorlevel

FIND вернет ErrorLevel следующим образом:

0 Строка найдена хотя бы в одном из файлов.

1 Строка не найдена

2 Если какие-либо файлы в списке не существуют или файлы не соответствуют маске с подстановочными знаками.

Указан неверный переключатель.

Так что либо вы должны рассмотреть 0(соответствует ОК), вместо 1, либо вы должны добавить инструкцию для преобразования статуса, как вы хотите.

Дайте мне знать, если вам нужна дополнительная информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...