|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] CMD/BAT - удалить файлы старше 5ти минут батником (+папки) |
|
|
CMD/BAT - [решено] CMD/BAT - удалить файлы старше 5ти минут батником (+папки)
|
Новый участник Сообщения: 3 |
/del
|
|
Отправлено: 12:15, 18-08-2017 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать А чего бы целиком на wsh не реализовать эту логику, раз он всё равно используется?
|
Отправлено: 13:04, 18-08-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать @echo off set mt=%time% set dt=-5 for /f "tokens=1-2 delims=:" %%a in ("%mt: =0%") do set/a "t=(1%%a-100)*60+(1%%b-100)+(dt %% 1440)","t+=(t>>31)&1440","hh=(t/60 %% 24)+100","mm=(t %% 60)+100" echo Ищем файлы и^ (или^) папки с временем создания равным %hh:~-2%:%mm:~-2% pause И для надежности отбираем файлы/папки созданные за сегодня и среди них и ищем |
Отправлено: 13:18, 18-08-2017 | #3 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать /del
|
Последний раз редактировалось ivanivan48, 22-11-2023 в 02:00. Отправлено: 14:29, 18-08-2017 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата ivanivan48:
Но в заголовке Цитата ivanivan48:
И если я не совсем понял что надо, то вероятно я не один, а отсюда следует что условие надо разжевать получше, хотя дело ваше, конечно. |
|||
Отправлено: 15:29, 18-08-2017 | #5 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать /del
|
Последний раз редактировалось ivanivan48, 22-11-2023 в 02:00. Отправлено: 16:27, 18-08-2017 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата ivanivan48:
попробуйте просто не обращать внимания на формулы и не задумываться как получается время, а просто представить что мы хотим увидеть разницу исключительно во времени двух файлов. Так вот она может отличаться на 5 минут как на двух файлах созданных сегодня и точно так же на одном за сегодня, а на другом в прошлом месяце - нет? например такой код найдет в папке файлы и папки созданные именно сегодня и если время их создания будет менее 5ти минут текущего, то попросит удалить: @echo off set "d=papka" for /f "skip=2 tokens=2,3*" %%a in ('dir /a/tc/-c "%d%"^|find "%date%"') do call :# "%%a" "%time%" "%%c" pause& exit :# set "t1=%~1"& set "t2=%~2" for /f "tokens=1-4 delims=:" %%a in ("%t1: =0%:%t2: =0%") do set/a "st1=(24-1%%a%%100)%%24*60-1%%b%%100","st2=(24-1%%c%%100)%%24*60-1%%d%%100","st=st1-st2" if %st% gtr 5 echo "%d%\%~3" надо удалить exit /b |
|
Отправлено: 18:35, 18-08-2017 | #7 |
Старожил Сообщения: 231
|
Профиль | Отправить PM | Цитировать alpap,
Цитата alpap:
Без формул - осмысляем: Цитата ivanivan48:
Конечно на ОЧЕНЬ старых файлах рискуем не влезть в счетчик - но это уже другая история... |
||
------- Отправлено: 21:47, 18-08-2017 | #8 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать y--,
может мы о чем-то разном, но хочется все же дойти до общего знаменателя. Например: @echo off set "d=papka" :: файл:a.txt создан:19.08.2017 время:13:50 :: файл:b.txt создан:19.07.2017 время:13:50 :: файл:c.txt создан:19.08.2016 время:13:50 :: файл:d.txt создан:18.08.2016 время:13:50 :: Текущее время 19.08.2017 14:15:45 (т.е. сегодня и все файлы более 5ти минут, но есть не сегодняшние) for /f "skip=2 tokens=2,3*" %%a in ('dir /a/tc/-c "%d%"^|findstr/rc:"^[^ ]"') do call :# "%%a" "%time%" "%%c" pause& exit :# set "t1=%~1"& set "t2=%~2" for /f "tokens=1-4 delims=:" %%a in ("%t1: =0%:%t2: =0%") do set/a "st1=(24-1%%a%%100)%%24*60-1%%b%%100","st2=(24-1%%c%%100)%%24*60-1%%d%%100","st=st1-st2" if %st% gtr 5 echo "%d%\%~3" надо удалить :: Все попадают под удаление, естественно exit /b :: файл:a.txt создан:19.08.2017 время:14:15 :: файл:b.txt создан:19.07.2017 время:14:15 :: файл:c.txt создан:19.08.2016 время:14:15 :: файл:d.txt создан:18.08.2016 время:13:50 Под удаление попадает только "d.txt" По моей логике - естественно в пределах времени, неестественно в пределах даты По логике "Независимо от даты лишь бы более 5ти минут" естественно, но уже нелогично. Или такого файла просто не может (не должно) уже там быть или надо отсекать подобное. Пример Работает врач (фотограф или еще кто) делает снимки 5ти минутные и сразу удаляет. Он не должен натолкнуться на что-либо прошлого года или месяца (случайно скопировал в сегодняшнюю папку что-то из архивов для сравнения и забыл убрать) |
Отправлено: 14:31, 19-08-2017 | #9 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать alpap,
Вот именно: он 30 декабря выключил компьютер и ушёл на каникулы. 10 января, когда он включит компьютер и приступит к работе, скрипт должен доудалить временные файлы оставшиеся с прошлого сеанса работы. А было это в другой день, другой месяц, другой год. Да и вообще, скрипт более-менее универсален - удаление легко меняется на какую-либо более созидательную деятельность, а пять минут - на двое суток. |
Отправлено: 15:24, 19-08-2017 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - удалить файлы старше 5ти минут батником | Dannnnnia | Скриптовые языки администрирования Windows | 3 | 18-08-2017 17:48 | |
CMD/BAT - [решено] Нужно удалить лог файлы старше 30 дней | ksv_sergo | Скриптовые языки администрирования Windows | 14 | 24-03-2016 15:02 | |
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле | InVariable | Скриптовые языки администрирования Windows | 4 | 22-05-2015 20:06 | |
CMD/BAT - [решено] Удалить две папки вместе с cmd/bat | Dodakaedr | Скриптовые языки администрирования Windows | 13 | 11-06-2014 23:06 | |
CMD/BAT - *CMD/BAT*.Помогите с батником. | pingUIN | Скриптовые языки администрирования Windows | 8 | 09-06-2007 07:55 |
|