В указанной директории найти файлы с помощью батника по словам в файле и удалить их. Слова не в названии а внутри файла
Например: у нас есть 3 текстовых файла: 1 - qwerty 2 - qwqwqw 3 - asdfqwerty. Они находятся в одной папке. А нам нужно удалить те файлы, в которых есть слово "qwerty", получается, удаляем 1 и 3. Сам пытался написать батник, который находит совпадения командой findstr вместе с for, который показывает, сколько файлов содержится, но получилось очень криво и постоянно выдает ошибки... Вот сам код: (сами файлы я назвал 1.txt и т.д, чтобы было легче) (sum - это сумма всех файлов, сод. в папке)
'''
@echo off
set sum = 0
for %%i in (*) do (sum+=1
if findstr /C:"qwerty" "sum".txt=="qwerty" (del "sum".txt) )
Pause
'''
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Удалить файл с фрагментом в имени:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%x in ('dir /b') do (
set x=%%x
if not !x!==!x:qwerty=! del !x!
)
Удалить файл с фрагментом в содержимом:
@echo off
for /f %%x in ('dir /b *.txt') do (
find "qwerty" %%x > nul
if not errorlevel 1 del %%x
)