Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить 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ю строку:
Код: Выделить весь код
2>nul dir /a-d/b|>nul find /v "" || goto :eof
заменить на:
Код: Выделить весь код
for /f %%a in ('dir /a-d/b^|find /c /v ""') do if %%a lss %cnf% goto :eof
)

Последний раз редактировалось alpap, 15-10-2018 в 01:20.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:42, 15-10-2018 | #8