BAT-файлы

Roman_UA

linux user
Реєстрація
24.06.09
Місто
Київ / Житомирська обл. / ČR
Телефон
Samsung / OnePlus
Можно ли в bat-файле реализовать удаление файлов из папки по дате/времени создания?
Например, все файлы созданные до 18:00 вчерашнего дня.
 

Refery

h7b6
Реєстрація
01.11.07
Місто
UK
Телефон
101010111
Думаю можно, но проще заюзать скрипт на VBS или JS.

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

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set objArgs = Wscript.Arguments

on error resume next

fNew = "D:\TMP\" ' Каталог для очистки
Set fld = fso.GetFolder(fNew)
Set fc = fld.Files
For Each f1 In fc
if f1.size=0 then f1.delete
Next
 
Реєстрація
04.05.08
Місто
Николаев
Телефон
Разные
Можно ли в bat-файле реализовать удаление файлов из папки по дате/времени создания?
Например, все файлы созданные до 18:00 вчерашнего дня.

Можно сделать с привлечением архиватора, например так:

rem папка источник
cd /d c:\papka
rem куда записывать архив
set rez=c:\temp\
rem берем текущую дату и запоминаем в новом формате
for /f "tokens=1,2,3 delims=. " %%i in ('date /t') do (set date=%%k%%j%%i)
rem перемещаем все вчерашние и более старые файлы в архив
pkzip -ex -T -P -i -m -r -u %rez%%date%_files *.* >>%rez%%date%_move.log
rem удаляем все, если таки не нужны, но можно удалить сразу, заменив -m на -d
rem del %rez%%date%_*.*

если нужно точное время - можно указать в параметре Т
 

Refery

h7b6
Реєстрація
01.11.07
Місто
UK
Телефон
101010111
Держи
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set objArgs = Wscript.Arguments

On error resume next
REM Дата и время меньше которой файлы удаляются (указать в том формате, как настроено на компе)
fDate=cDate("30.05.2012 18:00:00")

REM !!!У файлов в каталоге должен быть снят атрибут "Только для чтения"
fNew = "D:\TMP\" ' Каталог для очистки

Set fld = fso.GetFolder(fNew)
Set fc = fld.Files

For Each f1 In fc

REM Проверяется дата последнего изменения файла (DateLastModified), еще возможно DateCreated или DateLastAccessed
if f1.DateLastModified <= fDate then f1.delete

Next

зы: Вставляешь в текстовый файл, расширение меняешь на .vbs и запускаешь как скрипт. Редактировать параметры (дату и папку) блокнотом.
 
Зверху