|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск и удаление файлов по маске на всех локальных дисках |
|
CMD/BAT - [решено] Поиск и удаление файлов по маске на всех локальных дисках
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать Доброе время суток, уважаемые камрады!
Помогите, пожалуйста, решить следующую задачу: Нужно написать скрипт, который выполняет следующее: - поиск файлов по расширению (чтобы список расширений можно было дополнить в скрипте) - поиск на всех локальных дисках, но не сетевых - удаление найденных файлов Более ничего не нужно - ни логирования, ни подсчета и т.д. Прошу также уделить внимание тому, что должно быть строгое соответствие расширению. Например, я находил скрипты, где в списке перечислены "*.log", а при этом скрипт находил еще и файлы с расширением .log2 или .logged. Почему создал новую тему: прокурил не только этот форум, но еще и соседние. Находил куски кодов что тут, что там, но в силу того, что склад ума не кодерский, не смог их соединить... Сижу уже пару дней в темноте и тишине, и безуспешно :-( |
|
Отправлено: 17:09, 03-12-2016 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Скажите, как изменить вышеуказанный скрипт, чтобы он искал не на всех логических дисках, а только на указанных, например - C:, D:
Я так понимаю, что нужно заменить сроку - ( wmic LogicalDisk where "DriveType=3" get Name), не могу понять на что. Спасибо. Скрытый текст
@echo off setlocal set "ext=.txt/.log/.dat" for /f "skip=1" %%i in ('wmic LogicalDisk where "DriveType=3 or DriveType=2" get Name') do ( for %%j in (%%i) do ( for /f "delims=" %%k in ('2^>nul dir %%j\ /a-d /b /s^| findstr /e /i /l /c:"%ext:/=" /c:"%"') do ( >>del2.log echo del /a /f "%%k" ) ) ) endlocal exit /b |
Отправлено: 17:40, 12-04-2019 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:50, 13-04-2019 | #12 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:36, 13-04-2019 | #13 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать alpap, Быстрее всего и проще
Ни этот вариант, ни Ваш ИМХО низзья!
Цитата n1gt:
Том в устройстве Z имеет метку Arhiv Серийный номер тома: F497-24CE Содержимое папки Z:\Box_In 14.04.2019 07:54 2 У попа была собака.xlsm 14.04.2019 07:54 2 У попа была собака.xlsx 14.04.2019 07:54 2 У попа была собака.xls 3 файлов 6 байт 0 папок 30*455*373*824 байт свободно Как вариант решения, можно добавить костыль в виде If для жесткой проверки расширения |
|
------- Последний раз редактировалось megaloman, 14-04-2019 в 09:49. Отправлено: 08:25, 14-04-2019 | #14 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
а мы уже разбираем условие Artym1 и не факт что ему нужны такие же ограничения как у ТС. Собственно поэтому и положено и рекомендуется создавать новую тему, а раздувать старую. |
|
Отправлено: 18:33, 14-04-2019 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата n1gt:
8.3 filename - Wikipedia. Это ещё что — как удаляются некоторые файлы, начинающиеся с кириллицы в имени, по какой-нибудь вполне невинной на первый взгляд маске «a*.doc». Ради интереса, можно выполнить команду, скажем: и подивиться результатам. P.S. Автору темы, конечно, уже давно всё равно. |
|
Отправлено: 22:47, 14-04-2019 | #16 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Извините, что раскопал динозавра.
А можете помочь с таким же скриптом, но уже для удаления не файлов, а папок? То есть, чтобы можно было указать имена папок и поиск/удаление было по всем локальным дискам. |
Отправлено: 07:18, 18-03-2021 | #17 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set DelBox="Удали папку 1" "Удали папку 2" "Удали папку 3" FOR /F "usebackq delims= " %%i IN (`"wmic logicaldisk where "drivetype^='3'" get caption | findstr.exe /C:":""`) DO ( If /I Not %%i==C: ( Echo "%%i" Pushd %%i\ &&( For %%d In (%DelBox%) Do 2>nul Rd /S /Q %%d For /f "usebackq delims=" %%d In (`2^>nul Dir %DelBox% /B /S /A:D`) Do 2>nul Rd /S /Q "%%d" Popd ) ) ) pause Exit /B Я поставил в красной строке и в красной закрывающей скобке имя диска - исключения для просмотра диска C: Эти красные строки можно удалить, но просмотр C: диска займёт очень большое время - решайте сами, оно Вам нужно? Если таких исключений несколько, то можно в красной строке написать несколько If, например: If /I Not %%i==C: If /I Not %%i==E: ( |
------- Отправлено: 11:08, 18-03-2021 | #18 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать megaloman, спасибо огромное. А можно сделать папки исключения, допустим сканировать диск C:, но не сканировать C:\Windows ?
|
Отправлено: 06:34, 19-03-2021 | #19 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set DelBox="Удали папку 1" "Удали папку 2" "Удали папку 3" Set ExcRoot="C:\Program Files" "C:\Users" "C:\Windows" Set ExcDisk="" rem Set ExcDisk="C:" "D:" "Z:" FOR /F "usebackq delims= " %%i IN (`"wmic logicaldisk where "drivetype^='3'" get caption | findstr.exe /C:":""`) DO ( Call :RdDisk "%%i" ) pause Exit /B :RdDisk For %%j In (%ExcDisk%) Do If /I %1==%%j Exit /B Pushd "%~1\" &&( For %%j In (%DelBox%) Do 2>nul Rd /S /Q %%j Popd ) For /f "usebackq delims=" %%j In (`2^>nul Dir "%~1\" /B /A:D`) Do Call :RdSub "%~1\%%j" Exit /B :RdSub For %%s In (%ExcRoot%) Do If /I %%s==%1 Exit /B 0 Pushd "%~1\" &&( For %%s In (%DelBox%) Do 2>nul Rd /S /Q %%s For /f "usebackq delims=" %%s In (`2^>nul Dir %DelBox% /B /S /A:D`) Do 2>nul Rd /S /Q "%%s" Popd ) Exit /B |
------- Отправлено: 00:42, 20-03-2021 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - ПОИСК файлов на всех дисках с последующей отправкой их на FTP. | ariolit | Скриптовые языки администрирования Windows | 3 | 10-10-2015 15:32 | |
CMD/BAT - Поиск файлов по маске на удаленных машинах по словарю с выгрузкой в *.txt | gremlintv2 | Скриптовые языки администрирования Windows | 3 | 09-12-2013 04:46 | |
CMD/BAT - [решено] Удаление всех файлов с одним именем на всех дисках | ZARG-X | Скриптовые языки администрирования Windows | 3 | 08-03-2010 11:53 | |
CMD/BAT - [решено] Удаление всех папок с одним именем на всех дисках | volk1234 | Скриптовые языки администрирования Windows | 15 | 13-11-2009 02:13 |
|