Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    81

    Vbscript eliminazione files piu vecchi di 2 gg

    Ciaooo !

    In giro ho trovato questo script:
    codice:
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set folder = fso.GetFolder("D:\IPCamera") 
    Set files = folder.Files 
    For Each file in files 
        If DateDiff("d", file.DateLastModified, Now) > 2 Then 
        file.Delete 
        End If 
    Next
    Poverino, lui farebbe anche il suo lavoro ma, sfortunatamente, deve lavorare su un tree particolare di cui riporto lo schema:

    D:\IPCamera
    ___________\Video
    _______________\Camera#1
    ________________________\yyyy-mm-dd\
    ____________________________________Files1
    ____________________________________Files2
    _______________\Camera#2
    ________________________\yyyy-mm-dd\
    ____________________________________Files3
    ____________________________________Files4
    …………

    _____________\Alarm
    __________________\Camera#1
    ___________________________\yyyy-mm-dd\
    _______________________________________ Files5
    _______________________________________Files6
    __________________\Camera#2
    ___________________________\yyyy-mm-dd\
    _______________________________________ Files7
    _______________________________________ Files8
    …………

    Onde chiarire ulteriormente, il percorso del file3 è da intendersi:

    D:\IPCamera\Video\Camera#2\2013-07-21\Files3



    Qualche anima pia mi da una mano a modificare lo script per eliminare il files piu vecchi di 2 gg?
    Grazieeeeeeeee!!!!!!!!!!!!!!!!!!!!
    Luciana

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ammesso che io abbia capito bene, dovresti fare più o meno così:

    codice:
    Dim FSO, StartFolder, TheFolder, NumFileEliminati, sData
    StartFolder = "D:\IPCamera"
    sData = "2013-01-01" 
    
    set FSO=CreateObject("Scripting.FileSystemObject")
    Set TheFolder = FSO.GetFolder(StartFolder)
    DeleteFile TheFolder
    
    Sub DeleteFile(AFolder, sData)
       Dim AFile, TheFiles
    
       If AFolder.Name = sData Then
    
           Set TheFiles = AFolder.Files
    
           ' On Error Resume Next  
           For Each AFile In TheFiles
               FSO.DeleteFile AFile      
               ' NumFileEliminati = NumFileEliminati + 1
           Next
    
        End If
    
        ' ricorsione per cancellare file nelle sotto-cartelle
        Dim nextFolder
        If AFolder.SubFolders.Count > 0 Then
            For Each nextFolder In AFolder.SubFolders
                DeleteFile nextFolder, sData
            Next      
         End If
    
    End Sub
    Occhio che ho scritto al volo, per cui controlla bene e verifica prima di eseguire.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    81
    Gibra GRAZIE di cuore per l'aiuto !!!

    Ma, anch'io al volo, ho visto che c'è un piccolo inconveniente ovvero la:

    sData = "2013-01-01"

    nel senso che la data è ovviamente è variabile

    in piu ricordo un esempio tipico di tree:

    D:\IPCamera\Video\Camera#2\2013-07-21\Files3


    Grazieeeeeeeeee

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ovviamente è compito tuo modificare in base alle tue esigenze.
    D'altra parte l'istruzione ce l'hai già nel tuo codice.


  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    81
    Non conoscendo NIENTE di VB e non avendo nessuna voglia di usare n giorni per studiarlo oltretutto per un caso che quasi sicuramente è l'ultimo, non mi è rimasto che armarmi di pazienza e cercare nel web per vedere di trovare lo script che potesse risolververe il mio problema.

    L'ho trovato qui e funziona come un violino NEL SENSO CHE FA PULIZIA NELLE MOLTEPLICI SOTTO CARTELLE di quella definita (D:\IPCamera)!!

    Buona settimana !

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    81
    Ciao,
    come detto nel mio precedente post, da molti giorni sto usando con successo questo script per eliminare files piu vecchi di xx giorni:
    codice:
    ' Objective: To delete old files from a given folder and all subfolders below
    '
    ' Created by: MAK June 21, 2005
    '
    ' Format: cscript deloldfiles.vbs {DriveLetter:\FolderName} {#ofDays}
    '     or: cscript deloldfiles.vbs {\\servername\FolderName} {#ofDays}
    ' Example: cscript deloldfiles.vbs c:\dba\log 3
    '    (deletes files older than 3 days from the \dba\log file on drive C:)
    Set objArgs = WScript.Arguments
    FolderName =objArgs(0)
    Days=objArgs(1)
    
    set fso = createobject("scripting.filesystemobject")
    set folders = fso.getfolder(FolderName)
    datetoday = now()
    newdate = dateadd("d", Days*-1, datetoday)
    wscript.echo "Today:" & now()
    wscript.echo "Started deleting files older than :" & newdate 
    wscript.echo "________________________________________________"
    wscript.echo ""
    recurse folders 
    wscript.echo ""
    wscript.echo "Completed deleting files older than :" & newdate 
    wscript.echo "________________________________________________"
    
    sub recurse( byref folders)
      set subfolders = folders.subfolders
      set files = folders.files
      wscript.echo ""
      wscript.echo "Deleting Files under the Folder:" & folders.path
      wscript.echo "__________________________________________________________________________"
      for each file in files
        if file.datelastmodified < newdate then
          wscript.echo "Deleting " & folders.path & "\" & file.name & " last modified: " & file.datelastmodified
          on error resume next
    ' === to test this script but not actually delete files, comment out the next line ===
        file.delete
        end if
        
      next  
    
      for each folder in subfolders
        recurse folder
      next  
    
      set subfolders = nothing
      set files = nothing
    
    end sub
    Tuttavia, dopo aver eliminato i files obsoleti, se le cartelle sono vuote ( E NEL MIO CASO LO SONO SEMPRE POICHE LA DATA DI CREAZIONE DEI FILES CANCELLATI COINCIDE CON IL NOME DELLA CARTELLA) me le lascia nel sistema
    Non è un gran problema, ma se fosse facile eliminare anche quelle sarebbe carino..

    Grazie !!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.