Мне нужно удалить файлы, в которых есть строка ST * 823.
Это не похоже на работу:
for /f "eol=: delims=" %%F in ('findstr /m ST*823 *.txt') do del "%%F"
Я не думаю, что ему нравится *, поскольку, если я просто скажу ST, то это сработает.
FINDSTR будет интерпретировать строку поиска как регулярное выражение, если она содержит неэкранированный метасимвол регулярного выражения (*
в вашем случае). Параметр /L
заставит его использовать интерпретацию буквальной строки.
for /f "eol=: delims=" %%F in ('findstr /ml "ST*823" *.txt') do del "%%F"