|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Батник на удаление с исключением |
|
CMD/BAT - Батник на удаление с исключением
|
Старожил Сообщения: 309 |
Задача очень простая: удалять все файлы в корне диска D:\ и в корне его подпапки D:\Papka, за исключением файлов с расширением "Ярлык".
Вопрос! Как это сделать? PowerShell не возбраняю. Я использую утилиту Del, но у неё нет возможности исключения (какие файлы не удалять), поэтому мой батник разросся, мне приходится указывать все расширения файлов которые нужно удалять. Это не удобно, особенно если юзеры начнут захламлять папки файлами с новым расширением которое я не указывал - это не удобно, хочется создать батник и забыть (если только он совсем перестанет отрабатывать). Вот пример моего батника: chcp 1251 Del D:\*.pptx /q Del D:\*.xls /q Del D:\*.docx /q Del D:\*.xlsx /q Del D:\*.pdf /q Del D:\*.png /q Del D:\*.exe /q Del D:\*.jpg /q Del D:\*.doc /q Del D:\Papka\*.pptx /q Del D:\Papka\*.xls /q Del D:\Papka\*.docx /q Del D:\Papka\*.xlsx /q Del D:\Papka\*.pdf /q Del D:\Papka\*.png /q Del D:\Papka\*.exe /q Del D:\Papka\*.jpg /q Del D:\Papka\*.doc /q |
|
------- Отправлено: 19:18, 11-04-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ну, например:
Скрытый текст
@echo off setlocal enableextensions enabledelayedexpansion call :DelFilesInFolder "D:\" call :DelFilesInFolder "D:\Papka" endlocal exit /b 0 :DelFilesInFolder setlocal enableextensions enabledelayedexpansion set sSourceFolder=%~1 pushd "%sSourceFolder%" && ( for /f "usebackq delims=" %%i in (`2^>nul dir /a:-d /b "*.*"`) do if "%%~xi" neq ".lnk" echo del /f /q "%%~i" popd ) || ( echo Can't find source folder [%sSourceFolder%]. exit /b 1 ) endlocal exit /b 0 Цитата djuwa4:
|
|
Последний раз редактировалось Iska, 12-04-2017 в 09:28. Причина: Добавил в код второй позабытый endlocal, хотя это и не критично (endlocal и так делается автоматом при exit /b) Отправлено: 19:51, 11-04-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 309
|
Профиль | Отправить PM | Цитировать Iska! Спасибо вам огромное!!!!
|
------- Последний раз редактировалось djuwa4, 12-04-2017 в 10:26. Отправлено: 09:10, 12-04-2017 | #3 |
Старожил Сообщения: 309
|
Профиль | Отправить PM | Цитировать Думаю кому-то понадобится, скину ссылочки в которых описываются команды из батника:
setlocal (enableextensions, enabledelayedexpansion, endlocal) - http://ab57.ru/cmdlist/setlocal.html call - http://ab57.ru/cmdlist/call.html exit - http://ab57.ru/cmdlist/exit.html Функция DelFilesInFolder - http://wm-help.net/lib/b/book/1239221356/168 Остальные буду дописывать в этом комментарии. |
------- Последний раз редактировалось djuwa4, 12-04-2017 в 11:28. Отправлено: 10:41, 12-04-2017 | #4 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Хоть задача и решена, позволю себе добавить свой вариант
Вот вариант, который позволяет сделать несколько исключений, но можно и одно
Для реальной работы уберите Echo перед Del
|
|
------- Отправлено: 15:44, 12-04-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата djuwa4:
Цитата:
|
||
Отправлено: 16:02, 12-04-2017 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Удаление файлов в каталоге и подкаталогах с маской-исключением | Fafus | Скриптовые языки администрирования Windows | 15 | 17-03-2017 16:58 | |
PowerShell - удаление папок за исключением определнных | chek | Скриптовые языки администрирования Windows | 3 | 26-05-2016 10:10 | |
CMD/BAT - Нужен батник для удаление temp, чистки системы + лечение | KaSpieC 666 | Скриптовые языки администрирования Windows | 1 | 10-11-2014 10:51 | |
PowerShell - [решено] удаление пользователя со всех групп за исключением Domain Users | ZEvS-master | Скриптовые языки администрирования Windows | 11 | 13-10-2014 16:43 | |
CMD/BAT - [решено] Удаление всех разделов в ветке реестра "Interfaces" за исключением одной. | intelem | Скриптовые языки администрирования Windows | 5 | 18-01-2013 20:29 |
|