PDA

Показать полную графическую версию : Помогите пожалуйста. Скрипт Удаления файлов старше 60 дней, исключая файлы по маске


KitsuNeko
27-08-2012, 21:59
Может сможете помочь, есть скрипт это чудо удаляет все файлы в указаной папке старше 60 дней, можно ли задать ему маску исключений, что бы он не трогал к примеру файлы число создания или изменения которых было бы к примеру 10 и 20 числа любого месяца. Либо по маске имени файла ks_backup_*_*_10_*_*.fbk и ks_backup_*_*_20_*_*.fbk к примеру..
задача скрипта"проряжать" бакапы SQL сервера.

path = "\\Server\Temp"
killdate = date() - 60

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

Molchune
28-08-2012, 14:28
Тоже самое делаю на PS
Файлы имеют название yyyy_mm_dd

$mounth = (Get-Date).AddMonths(-2)
Get-ChildItem "D:\Backup\" -Recurse | Where-Object { $_.name -notmatch "2012_.._01" -and $_.name -notmatch "2012_.._10" -and $_.CreationTime -lt $mounth }| Remove-Item -Recurse

KitsuNeko
28-08-2012, 15:14
оже самое делаю на PS
Файлы имеют название yyyy_mm_dd
Код:
$mounth = (Get-Date).AddMonths(-2)
Get-ChildItem "D:\Backup\" -Recurse | Where-Object { $_.name -notmatch "2012_.._01" -and $_.name -notmatch "2012_.._10" -and $_.CreationTime -lt $mounth }| Remove-Item -Recurse »

Мне б на VBS допаять((

а что за PS?
"2012_.._01" я правильно понял, что это маска исключения?

KitsuNeko
29-08-2012, 13:55
Спасибо PowerShell отрабатывает, пришлось правда покопаться с запуском самого скрипта, задача решилась)

Но тем не менее вопрос по VBS остался открытым




© OSzone.net 2001-2012