Я хочу найти строку в файле с помощью DOS:
Например,
найдите "строку" status.txt
И когда это найдено, я хочу выполнить пакетный файл.
Что лучший способ состоит в том, чтобы сделать это?
Давненько я ничего не делал с пакетными файлами, но мне кажется, что следующее работает:
find /c "string" file
if %errorlevel% equ 1 goto notfound
echo found
goto done
:notfound
echo notfound
goto done
:done
Это действительно доказательство концепции; очистите, как вам удобно. Ключ в том, что find
возвращает уровень ошибки
из 1
, если строка
отсутствует в файле
. В данном случае мы ответвляемся на notfound
, в противном случае мы работаем со случаем found
.
C:\test>find /c "string" file | find ": 0" 1>nul && echo "execute command here"