Пробуйте, запустите без параметров - скрипт покажет справку, как его использовать.
@echo off
setlocal enableextensions
if "%2" == "" (call :help) else (call :cln %*)
endlocal & exit /b
:cln
del /f/q %~dp0*.tmp
set logfile=%~dp0%~n0.log
call :log "%date% %time% %0 запущена с параметрами %*"
for /f "eol=# delims=^: tokens=*" %%a in ('type %1') do (dir /a-d /b /s %2\*%%a* && dir /a-d /b /s %2\*%%a*>> %~dp0files.tmp)
for /f "eol=# delims=^: tokens=*" %%a in ('type %1') do (dir /ad /b /s %2\*%%a* && dir /ad /b /s %2\*%%a* >> %~dp0dirs.tmp)
call :log "%date% %time% удаляю файлы..."
call :clean
call :log "%date% %time% удаляю папки..."
call :clean 0
:: del %~dp0*.tmp
exit /b
:log
echo %~1 >> %logfile%
exit /b
:clean
:: здесь устанавливаются программы для удаления rd для каталогов, del для файлов
if "%1" == "" (set rm=echo && set tmpf=%~dp0files.tmp) else (set rm=echo && set tmpf=%~dp0dirs.tmp)
:: чтобы скрипт удалял файлы и папки - закомментируйте строчку выше и раскомментируйте строчку ниже
:: if "%1" == "" (set rm=del /f/q && set tmpf=%~dp0files.tmp) else (set rm=rd /s/q && set tmpf=%~dp0dirs.tmp)
for /f %%b in ('type %tmpf%') do (
%rm% %%b && (call :log "%date% %time% удалён(а) %%b.") || (call :log "%date% %time% не могу удалить %%b.")
)
exit /b
:help
echo ---------------------------------------------------
echo %~n0 20120406
echo очищает папку по шаблону
echo.
echo Usage:
echo %~n0 "файл_шаблона" "папка_для_очистки"
echo ---------------------------------------------------
exit /b
содержимое файла шаблонов
# можно писать комментарии после решётки
# Удалятся все (!!!) файлы и папки в названии (и расширении - для файлов) которых
# встречаются tmp или TMP, log или LOG, в любой части названия в начале, середине, конце и в любой части расширения файла
tmp
log
Получилось немного громоздко, "бетатест" показал, что работает. Также можно "поиграться" с обработкой файлов-шаблонов, т.о. пространство для полёта мысли, надеюсь, я вам дал.