YuS_2
![](http://forum.ru-board.com/board/avatars/private/YuS_2.gif)
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AngelNet Цитата: а мой запрос выше не поможете оформить? уж больно долго ответа нет, а он актуален. | Ну, если бы сейчас это взялся делать, написал бы уже на powershell, а так, могу предложить давно написанный и более универсальный вариант: Код: @echo off rem Вариант очистки временных папок с выводом удаляемых, очищаемых и исключённых каталогов (но не файлов) echo Процесс очистки временных каталогов... echo Старт: %time% echo. rem Перечень каталогов для очистки (задаются папки с абсолютными путями): set "d1=%temp%" set "d2=%windir%\temp" set "d3=" rem количество очищаемых каталогов: set n=2 rem Перечень подкаталогов исключаемых из удаления в одном и только одном корневом каталоге rem (задаются только имена папок, без путей и слешей и корневой каталог с абсолютным путем): rem корневой каталог set "root=%temp%" rem подкаталоги set "e1=test" set "e2=123" set "e3=" rem количество исключаемых подкаталогов: set k=2 setlocal enabledelayedexpansion rem Составляем массивы обрабатываемых каталогов в строки: for %%t in (d e) do ( set x=%%t if "!x!"=="d" (set /a z=n) else (set /a z=k) for /l %%g in (1,1,!z!) do ( if defined %%t%%g (set var=%%g&call :per) ) ) rem Массивы каталогов для обработки (для вывода раскомментировать): ::echo очищаются - %arr_d% ::echo исключения - %arr_e% rem Предохранитель для проверки: ::pause&exit rem Цикл удаления файлов и подкаталогов: for %%v in (%arr_d%) do ( pushd "%%~v" for /f "delims=" %%i in ('dir /b/ad') do set "fd=%%~dpnxi"&call :rem echo Удаляем только файлы, каталог: "%%~v" rem для боевого использования, в следующей строке удалить "echo": >nul 2>&1 echo del /f/q/a "%%~v" popd ) rem 2>nul del /f/s/q/a "%programfiles%\Mozilla Firefox\*.tmp" &: строка с очисткой папки Лисы echo. echo Стоп: %time% pause&exit :per set "var=!%x%%var%!" set "ext=!arr_%x%!" if "%x%"=="d" if not exist "!var!\" exit /b set "arr_%x%=%ext% "%var%"" exit /b :rem rem Проверка списка исключений: for %%m in (%arr_e%) do ( if /i "%fd%" equ "%root%\%%~m" echo Исключается каталог: "%fd%"&exit /b ) echo Удаляем каталог: "%fd%" rem для боевого использования, в следующей строке удалить "echo": >nul 2>&1 echo rd /s/q "%fd%" exit /b | - тут есть комменты, так что подкорректировать под себя, с добавлением нужных каталогов в очистку, не очень сложно. И кстати, этот батник, вроде бы, где-то публиковал когда-то... здесь, на форуме. ЗЫ Строку с папкой лисы добавил, но закомментированную. Кому не требуется, можно просто удалить | Всего записей: 3219 | Зарегистр. 03-02-2009 | Отправлено: 05:52 03-04-2018 | Исправлено: YuS_2, 09:49 03-04-2018 |
|