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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] CMD/BAT - удалить файлы старше 5ти минут батником (+папки)

Ответить
Настройки темы
CMD/BAT - [решено] CMD/BAT - удалить файлы старше 5ти минут батником (+папки)

Новый участник


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

Профиль | Отправить PM | Цитировать


Изменения
Автор: ivanivan48
Дата: 22-11-2023
/del

Отправлено: 12:15, 18-08-2017

 

Ветеран


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

Профиль | Отправить PM | Цитировать


А чего бы целиком на wsh не реализовать эту логику, раз он всё равно используется?
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:04, 18-08-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

Профиль | Отправить 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
P.S.
И для надежности отбираем файлы/папки созданные за сегодня и среди них и ищем

Отправлено: 13:18, 18-08-2017 | #3


Новый участник


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

Профиль | Отправить PM | Цитировать


/del

Последний раз редактировалось ivanivan48, 22-11-2023 в 02:00.


Отправлено: 14:29, 18-08-2017 | #4


Ветеран


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

Профиль | Отправить PM | Цитировать


Цитата ivanivan48:
Может вы не совсем поняли »
может.
Но в заголовке
Цитата ivanivan48:
удалить файлы старше 5ти минут »
конечно, опираясь на логику это для созданных сегодня файлов и чтобы созданные не сегодня не попадали в список поиска, то надо выделить только сегодняшние.
И если я не совсем понял что надо, то вероятно я не один, а отсюда следует что условие надо разжевать получше, хотя дело ваше, конечно.

Отправлено: 15:29, 18-08-2017 | #5


Новый участник


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

Профиль | Отправить PM | Цитировать


/del

Последний раз редактировалось ivanivan48, 22-11-2023 в 02:00.


Отправлено: 16:27, 18-08-2017 | #6


Ветеран


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

Профиль | Отправить 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

y-- y-- вне форума

Старожил


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

Профиль | Отправить PM | Цитировать


alpap,
Цитата alpap:
Так вот она может отличаться на 5 минут как на двух файлах созданных сегодня и точно так же на одном за сегодня, а на другом в прошлом месяце - нет? »
конечно нет.
Без формул - осмысляем:
Цитата ivanivan48:
сколько минут прошло с момента создания файла »
это разве похоже на разницу времени(в смысле часы-минуты минус часы минуты)? Ни разу... Так как суточный файл будет иметь время жизни в минутах 1440 и больше - дата заведомо здесь уже не нужна.
Конечно на ОЧЕНЬ старых файлах рискуем не влезть в счетчик - но это уже другая история...

-------
Ты это - заходи если что...


Отправлено: 21:47, 18-08-2017 | #8


Ветеран


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

Профиль | Отправить 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
Благодарности: 824

Профиль | Отправить PM | Цитировать


alpap,
Вот именно: он 30 декабря выключил компьютер и ушёл на каникулы. 10 января, когда он включит компьютер и приступит к работе, скрипт должен доудалить временные файлы оставшиеся с прошлого сеанса работы. А было это в другой день, другой месяц, другой год.

Да и вообще, скрипт более-менее универсален - удаление легко меняется на какую-либо более созидательную деятельность, а пять минут - на двое суток.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:24, 19-08-2017 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] CMD/BAT - удалить файлы старше 5ти минут батником (+папки)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход