|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление заданного количества файлов из папки |
|
|
CMD/BAT - [решено] Удаление заданного количества файлов из папки
|
Новый участник Сообщения: 6 |
Здравствуйте!
Подскажите, пожалуйста, каким образом можно зациклить удаление n первых по алфавиту файлов из папки? Заранее благодарю ![]() |
|
Отправлено: 19:32, 14-10-2018 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата UserName1989:
![]() |
|
------- Отправлено: 19:59, 14-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать mwz, нет, удалить все файлы проще)
А тут, к примеру, только первые пять... И с паузой удалять по 5 файлов до тех пор, пока в папке не останется меньше пяти, но с этой частью всё понятно, а вот удаление конкретного количества - проблемка ![]() |
Отправлено: 20:07, 14-10-2018 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать это:
отправить на удаление а паузу добавляйте, если надо, а если все это поместить в вывод for /l - получим цикл удаления пятерок, единственно надо посчитать все файлы заранее чтобы кол-во в for /l взять с запасом, но можно и точнее все сделать при желании, причем вариантов не один. |
Отправлено: 20:26, 14-10-2018 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 21:09, 14-10-2018 | #5 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата UserName1989:
|
|
Отправлено: 22:31, 14-10-2018 | #6 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать UserName1989,
Вот вариант, который удалит кол-во файлов, кратное заданному числу, и оставляет кол-во файлов, менее этого числа, последние при сортировке по имени. Если кол-во файлов нацело делится на это число, удалятся все файлы
@Echo Off cls chcp 866 >nul Set "BoxIn=Z:\Папка с файлами" Set "Mask=*" Set /A Diskret=5 Pushd "%BoxIn%" || (Echo "%BoxIn%" not found &Pause &Exit /B 1) chcp 437 >nul Set /A N=0 FOR /F "usebackq tokens=1,2 delims= " %%i IN (`2^>nul Dir /A:-D`) DO If /I "%%j"=="File(s)" Set /A N=%%i chcp 866 >nul Set /A N=%N% %% %Diskret% If %N%==0 Del /Q "%BoxIn%\*.%Mask%" 2>nul &Exit /B FOR /F "usebackq Skip=%N% delims=" %%i IN (`2^>nul Dir /B /A:-D /O:-N "%BoxIn%\*.%Mask%"`) DO Del "%%i" Exit /B Если всё же надо удалять с паузами, то вот вариант
@Echo Off cls chcp 866 >nul Set "BoxIn=Z:\Папка с файлами" Set "Mask=*" Set /A Diskret=5 Set /A TPause=3 Pushd "%BoxIn%" || (Echo "%BoxIn%" not found &Pause &Exit /B 1) chcp 437 >nul :Begin Set /A N=0 FOR /F "usebackq tokens=1,2 delims= " %%i IN (`2^>nul Dir /A:-D`) DO If /I "%%j"=="File(s)" Set /A N=%%i Set /A N=%N%-%Diskret% If Not %N% GTR 0 Exit /B If %N% GTR 0 FOR /F "usebackq Skip=%N% delims=" %%i IN (`2^>nul Dir /B /A:-D /O:-N "%BoxIn%\*.%Mask%"`) DO Del "%%i" TimeOut /T %TPause% /NOBREAK GoTo :Begin Exit /B |
------- Последний раз редактировалось megaloman, 15-10-2018 в 00:43. Отправлено: 23:41, 14-10-2018 | #7 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать если я правильно понимаю задание, то надо удалять из папки файлы пачками по 5 штук с паузой после пачки
@echo off set "d=C:\papka" set "f=C:\file-log.txt" set cnf=5 :l setlocal enabledelayedexpansion pushd "%d%" 2>nul dir /a-d/b|>nul find /v "" || goto :eof for /f "delims=" %%a in ('2^>nul dir /a-d/b') do ( set /a n+=1& if !n! leq %cnf% (del "%d%\%%a"& >>%f% echo del "%d%\%%a") ) timeout /t 3& >>%f% echo: popd endlocal goto l pause& exit (файлы удаляются пачками по 5шт с соответствующей записью в лог, если число файлов не было кратное 5ти, последняя пачка просто будет содержать число файлов менее 5ти, на работе кода никак не скажется - удалены будут тоже и отображены в логе если то оставшееся кол-во файлов после удаления которое менее 5ти должно оставаться, а не удаляться, то 9ю строку: заменить на: ) |
Последний раз редактировалось alpap, 15-10-2018 в 01:20. Отправлено: 00:42, 15-10-2018 | #8 |
Crazy Сообщения: 1217
|
Профиль | Отправить PM | Цитировать Напоминает:
"- А хотите я его стукну? И он станет фиолетовым в крапинку!"©цитата ![]() |
------- Отправлено: 11:28, 15-10-2018 | #9 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать YuS_2, ага, ..., подобных бы товарищей всех во фриланс да под кругленькую сумму и условие научились бы писать правильно и полно и примеры бы привели и у препода 10 раз уточнили что он хочет.
|
Отправлено: 11:56, 15-10-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - [решено] Удаление файлов заданного расширения | Папуас | Программное обеспечение Windows | 11 | 25-02-2019 15:04 | |
CMD/BAT - [решено] Перемещение заданного количества файлов, начиная с первого по имени | Alexander_88 | Скриптовые языки администрирования Windows | 2 | 27-08-2014 09:54 | |
CMD/BAT - [решено] Перемещение заданного количества файлов, начиная с последнего по имени | Alexander_88 | Скриптовые языки администрирования Windows | 6 | 21-08-2014 11:36 | |
Удаление файлов из сетевой папки | VERVIL | Microsoft Windows NT/2000/2003 | 2 | 15-04-2010 05:22 | |
Прочие - Программа (скрипт) удаление из заданного каталога заданных файлов | __sa__nya | Программное обеспечение Windows | 1 | 20-11-2008 19:02 |
|