Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Удаление файлов старше 5 дней кроме указанного по имени. (http://forum.oszone.net/showthread.php?t=210111)

Joni 29-06-2011 13:47 1703584

Удаление файлов старше 5 дней кроме указанного по имени.
 
Мужики где найти или как написать? в скриптах полный ноль (((
Помогите пожалуйста.
Нужно так чтоб срабатывал фоново, никаких кнопок о продолжении итд. запустился из задания сделал свое дело и закрылся, Заранее спасибо! Запускать его буду из программы acronis функцией Pre/Post Command

amel27 30-06-2011 04:49 1703991

Цитата:

Цитата Joni
Удаление файлов старше 5 дней кроме указанного по имени »

удалять где? в конкретной (жестко заданной) папке или в каталоге со скриптом? с подкаталогами или без?

Ins_16 30-06-2011 10:14 1704119

Using Batch Files in Acronis True Image вся операция подробно описана если туго с английским юзаем Google translate.
BAT manage files описаны операции с файлами с помощью скрипта, имеется пример.

pers26 02-03-2012 16:24 1870935

path = " "(папка из которой удаляешь файлы)
killdate = date() -5

arFiles = Array()
set fso = createobject("scripting.filesystemobject")

SelectFiles path, killdate, arFiles, true

nDeleted = 0
for n = 0 to ubound(arFiles)
on error resume next
arFiles(n).delete true
if err.number <> 0 then
wscript.echo "Unable to delete: " & arFiles(n).path
else
nDeleted = nDeleted + 1
end if
on error goto 0
next




sub SelectFiles(sPath,vKillDate,arFilesToKill,bIncludeSubFolders)
on error resume next
set folder = fso.getfolder(sPath)
set files = folder.files

for each file in files
dtlastmodified = null
on error resume Next
dtlastmodified = file.datelastmodified
on error goto 0
if not isnull(dtlastmodified) Then
if dtlastmodified < vKillDate then
count = ubound(arFilesToKill) + 1
redim preserve arFilesToKill(count)
set arFilesToKill(count) = file
end if
end if
next

if bIncludeSubFolders then
for each fldr in folder.subfolders
SelectFiles fldr.path,vKillDate,arFilesToKill,true
next
end if
end sub


ток надо доработать- чтоб нужные файлы оставлял

alek2012 11-07-2012 09:24 1949755

Отлично работает скрипт.
Подскажите пожалуйста как в указанной папке удалять не только файлы, но и все каталоги которые в этой папке старше заданной даты?

trampic 11-07-2012 10:30 1949785

Разрешите поделиться:

Код:

On Error Resume Next

'путь к общей папке
CommonPath = "E:\MULTIMEDIA"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Common = FSO.GetFolder(CommonPath)

'удаляем файлы
Set CommonItems = Common.Files
For Each i in CommonItems
If DateDiff("D", i.DateCreated, Now) > 10 Then
i.delete
End If
Next

'удаляем папки
Set CommonItems = Common.SubFolders
For Each i in CommonItems
If DateDiff("D", i.DateCreated, Now) > 10 Then
i.delete
End If
Next

Цифра 10 в указанном примере отвечает за количество дней, в течении которых файл не будет удаляться, с даты его создания.

alek2012 11-07-2012 11:18 1949807

2 trampic Мега! Благодарю! То что нужно, простенько и понятно!

уже в планировщике)))


Время: 23:21.

Время: 23:21.
© OSzone.net 2001-