|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов и папок кроме указанных. |
|
|
CMD/BAT - [решено] Удаление файлов и папок кроме указанных.
|
![]() Пользователь Сообщения: 90 |
rem очистка всего кроме папок rem ================================================================== setlocal enableextensions enabledelayedexpansion chcp 1251 >nul set a=чистим set c=Нажмите кнопку: Удалить Y \ Пропустить N chcp 866 >NUL echo %a% echo %c% rem Укажите местонахождение директории для очистки set sTargetFolder=steam\SteamApps\common\"dota 2 beta" rem Поддиректория (или файл), которая НЕ должна удаляться set sExcludeFilesOrFolders="_CommonRedist" "EmptySteamDepot" "game" for /f "tokens=*" %%i in ('dir "%sTargetFolder%" /b /a:-d') do ( set /a bDelete = 1 for %%j in (%sExcludeFilesOrFolders%) do ( if /i "%%i" equ "%%~j" set /a bDelete = 0 ) if !bDelete! equ 1 del /f /q "%sTargetFolder%\%%i" ) for /f "tokens=*" %%i in ('dir "%sTargetFolder%" /b /a:d') do ( set /a bDelete = 1 for %%j in (%sExcludeFilesOrFolders%) do ( if /i "%%i" equ "%%~j" set /a bDelete = 0 ) if !bDelete! equ 1 rd /s /q "%sTargetFolder%\%%i" ) pause endlocal exit /b 0 над что бы в конечной папке удалилось ВСЕ кроме указанных папок где че я делаю не так? не должно быть привязки к диску, вроде как я всегда делаю, кладу батник рядом с папкой, он все находит и делает файлы разные картинки левые папки dmpm и файлы с кириллицей брал основу тут: http://forum.oszone.net/thread-217825.html видел фишку, типо дать "только чтение" папкам, потом удалить папку, удалится все кроме залоченных. Но это не вариант так как там нужные файлы >10gb |
|
Отправлено: 23:14, 01-11-2015 |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать Как понять steam\SteamApps\common\"dota 2 beta" ???
Я не искал ошибку в Вашем коде. У меня получилось нечто такое (в меру моего понимания возможного имени папки которую обрабатываем): Цитата:
@Echo Off SetLocal EnableExtensions EnableDelayedExpansion set "sTargetFolder=Где чистим\Подпапка" set sExcludeFilesOrFolders="_CommonRedist" "EmptySteamDepot" "game" "Нужный файл 1" "Нужный файл 2.txt" FOR /F "usebackq delims=" %%i IN (`dir "%sTargetFolder%\" /b /A:D 2^>nul`) DO ( Set /A Log=0 FOR %%j IN (%sExcludeFilesOrFolders%) DO If "%%i"==%%j Set /A Log=1 If !Log!==0 Rd /s /q "%sTargetFolder%\%%i" ) FOR /F "usebackq delims=" %%i IN (`dir "%sTargetFolder%\" /b /A:-D 2^>nul`) DO ( Set /A Log=0 FOR %%j IN (%sExcludeFilesOrFolders%) DO If "%%i"==%%j Set /A Log=1 If !Log!==0 Del "%sTargetFolder%\%%i" ) Чуть короче, но , скорее всего, медленнее в работе @Echo Off SetLocal EnableExtensions EnableDelayedExpansion set "sTargetFolder=Где чистим\Подпапка" set sExcludeFilesOrFolders="_CommonRedist" "EmptySteamDepot" "game" "Нужный файл 1" "Нужный файл 2.txt" FOR /F "usebackq delims=" %%i IN (`dir "%sTargetFolder%\" /b 2^>nul`) DO ( Set /A Log=0 FOR %%j IN (%sExcludeFilesOrFolders%) DO If "%%i"==%%j Set /A Log=1 If !Log!==0 ( Rd /s /q "%sTargetFolder%\%%i" 2>nul || Del /q "%sTargetFolder%\%%i" 2>nul ) ) |
|
------- Последний раз редактировалось megaloman, 02-11-2015 в 16:52. Отправлено: 15:59, 02-11-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
вычитал что cmd не видит пути с пробелами и ковычки помогают там где в названии папки "дырки" нашел почему именно некоторые файлы не удаляются, там присутствует такой значек: — пример: vcredist_x86 — копия.exe как сделать так или добавить его в правило что бы такие файлы тоже удалялись?! |
|
Отправлено: 18:29, 02-11-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mrG0bliN:
Цитата mrG0bliN:
|
||
Отправлено: 19:25, 02-11-2015 | #4 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
впринципе для роботоспособности сойдет, а ништяки такие можно ли как нить реализовать? что бы вначале было 3 пункта на выбор, например: 1.вариант а 2. вариант б 3. выход и по нажатию цифр на клаве выбирался метод |
||
Отправлено: 19:50, 02-11-2015 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Легко
![]() @echo off echo 1. вариант а echo 2. вариант б echo 3. выход echo. choice.exe /c 123 /m "Enter your choice:" call :Choice%ErrorLevel% exit /b 0 rem Variant A :Choice1 echo Variant A exit /b 0 rem Variant B :Choice2 echo Variant B exit /b 0 rem Exit :Choice3 exit /b 0 rem Ctrl-C :Choice0 rem Error :Choice255 rem Nothing to do exit /b 0 |
Последний раз редактировалось Iska, 02-11-2015 в 22:04. Причина: Убрана лишняя точка из предложения. Отправлено: 20:19, 02-11-2015 | #6 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать не закрывайте пока тему, все супер осталось переписать под себя и протестировать
|
Отправлено: 21:58, 02-11-2015 | #7 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() |
|
Отправлено: 22:34, 03-11-2015 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mrG0bliN:
|
|
Отправлено: 23:40, 03-11-2015 | #9 |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() |
|
Отправлено: 00:24, 04-11-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление файлов кроме сегодняшнего | Kenwood | Скриптовые языки администрирования Windows | 16 | 10-05-2021 11:43 | |
CMD/BAT - Удаление всех папок кроме 30-ти последних | __sa__nya | Скриптовые языки администрирования Windows | 1 | 12-04-2013 21:21 | |
CMD/BAT - Удаление всех файлов из папки кроме батника | composter | Скриптовые языки администрирования Windows | 11 | 30-03-2013 08:25 | |
CMD/BAT - Удаление всех файлов кроме одного в подпапках | SELFY | Скриптовые языки администрирования Windows | 2 | 29-07-2012 15:34 | |
Регулярное выражение - вырезать все кроме указанных в масиве слов | venuko | Вебмастеру | 14 | 30-01-2009 09:51 |
|