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

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

KitsuNeko 27-08-2012 21:59 1978085

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

PHP код:

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

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

SelectFiles pathkilldatearFilestrue

nDeleted 
0
for 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(dtlastmodifiedThen
      
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 1978493

Тоже самое делаю на 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 1978518

Цитата:

Цитата Molchune
оже самое делаю на 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 1979191

Спасибо PowerShell отрабатывает, пришлось правда покопаться с запуском самого скрипта, задача решилась)

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


Время: 18:41.

Время: 18:41.
© OSzone.net 2001-