Не совсем понятно, хотите ли вы исключить из удаления файлы, имена или содержимое которых включают определенную строку; в любом случае, это для первого:
pushd "%WinDir%\TEMP" && (
for /F "delims= eol=|" %%F in ('
dir /B /A:-D "*.*" ^| findstr /V /I /C:"TESTE"
') do (
ECHO del /F "%%F"
)
popd
)
Как только вы будете удовлетворены результатом, удалите команду ECHO
в верхнем регистре .
Вышеупомянутый сценарий также не удаляет файлы, расширения которых содержат данную строку. Но если вы хотите учитывать только базовое имя, вы можете вместо этого использовать этот код:
pushd "%WinDir%\TEMP" && (
for /F "delims= eol=|" %%F in ('
dir /B /A:-D "*.*"
') do (
set "NAME=%%~nF"
setlocal EnableDelayedExpansion
if /I "!NAME:TESTE=!"=="!NAME!" (
endlocal
ECHO del /F "%%F"
) else endlocal
)
popd
)