Удаление всех файлов кроме одного в подпапках
Можно ли с помошью BAT-файла удалить все файлы из подпапок, кроме одного-трех, которые во всех подпапках имеют одно и то же название ?
|
Для однгого файла
set FILEMASK=*.* set FILEPATH=D:\TEMP set FILENOTDELETE=file.file for /f %%i in ('dir /b /s "%FILEPATH%\%FILEMASK%"') do if /I not "%%i" == "%%~dpi%FILENOTDELETE%" del /f/q "%%i" >nul 2>nul |
Код:
@Echo Off - Обрабатываем файлы в папке (с подпапками), определёнными в переменной Otkuda - В текстовый файл в корне C:\ сохраняем список неудаляемых файлов (его имя я сделал по имени батника с добавлением .Nodelete. Для примера, я здесь указал 3 файла. Для бОльшей надёжности перед именем файла поставил \ В том же списке и имя батника (если он расположен в обрабатываемой папке для защиты от удаления самого себя) - Xcopy выдаёт список (/L) файлов в указанной папке и подпапках (/S) для обработки в команде For (в частности, для удаления), за исключением имён записанных в наш текстовый файл (ключ /EXCLUDE). Следует учесть особенность работы ключа EXCLUDE |
Время: 06:11. |
Время: 06:11.
© OSzone.net 2001-