Я нашел несколько решений этой проблемы, но, к сожалению, ни один из них не работает на моем окне Windows.
Я запускаю цикл FOR
в пакетном файле, чтобы просмотреть несколько текстовых файлов. Для каждого текстового файла я хочу ECHO
его имя (и, возможно, перенаправить вывод в файл), если grep
(из WinGNU) возвращает строку. Быстрый поиск Google показывает мне, чтобы сделать это следующим образом:
IF grep -c pattern file ( stuff )
Однако это выдает ошибку
-c was unexpected at this time.
В качестве альтернативы я решил использовать код выхода из grep --quiet
следующим образом:
grep -q pattern file
IF ERRORLEVEL 1 ( stuff )
Это всегда не проходит тест IF, даже если grep успешен.
Есть ли хороший способ выполнить условный оператор в Windows, если мой grep находит совпадение?
Мой код:
SET locations=( a, long, list, of, last, two, octets )
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%r IN %locations% DO (
grep -i "^\[CardSwipe\]" \\10.0.%%r\path\to\file.ini
IF ERRORLEVEL 1 echo %%r
Мой вывод:
[this line left intentionally blank] :)