View Full Version : Script cancellazione cartelle dopo 30 giorni
Ciao,
qualcuno di voi è in grado di passarmi uno script che controlli tutte le sottocartelle di un percorso che gli do io e che cancelli una sottocartella nel caso sia stata creata 30 giorni fa? (senza controllare i file all'interno che possono avere date molto vecchie che andrebbero a sfasare il delete)
Io purtroppo sono giorni che cerco di farlo funzionare ma sto combinando solo casini....
grazie
Ciao,
qualcuno di voi è in grado di passarmi uno script che controlli tutte le sottocartelle di un percorso che gli do io e che cancelli una sottocartella nel caso sia stata creata 30 giorni fa? (senza controllare i file all'interno che possono avere date molto vecchie che andrebbero a sfasare il delete)
Io purtroppo sono giorni che cerco di farlo funzionare ma sto combinando solo casini....
grazie
qualcosa tipo
find /path/to/folder -type d -ctime 30 | xargs -I % rm -rf "%"
può andare ?
(se vuoi "30 O PIÙ" giorni fa, allora cambia il 30 in +30)
ciao,
purtroppo non mi riconosce il comando...
io ho questo:
'Objective: To Delete folders older than certain # of days.
'Created by: MAK
'Date Written: Jun 4, 2004
'Usage: DeleteOldFolder "\\Servername\d$\MSSQL\BACKUP\Replication\" "2"
'Usage: DeleteOldFolder "\\Servername1\Sharename\Replication\" "3"
On error resume next
if isnull(WScript.Arguments(0))=True or isnull(WScript.Arguments(1))=True or isnull(WScript.Arguments(2))=True then
msgbox "Usage: DeleteOldFolder" & "'\\Servername1\Sharename\Replication\' '3' '\\servername2\log\DeleteOldFolders.log'"
end if
Dim Directory
Dim Noofdays
Dim FSO
Dim FSO2
Dim LogFile
Dim Folderlist
Dim folders
Directory =WScript.Arguments(0)
Noofdays=cint(WScript.Arguments(1))
LogFile=WScript.Arguments(2)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FSO2 = CreateObject("Scripting.FileSystemObject")
Set oFSO = CreateObject("Scripting.FilesyStemObject")
Set ofile = oFSO.createTextFile(LogFile, True)
ofile.writeline "DeleteOldFolders Started"
ofile.writeline now()
Set Folderlist = FSO.GetFolder(Directory)
Set folders = Folderlist.SubFolders
For Each d In Folders
' msgbox d.name
' msgbox d.size
' msgbox d.dateCreated
' msgbox d.dateLastModified
' msgbox d.dateLastAccessed
tempdirectory = Directory & d.name
'msgbox Noofdays
'msgbox datediff("d",d.dateCreated,now())
If datediff("d",d.dateCreated,now()) > Noofdays Then
if tempdirectory <> "1Old Backup" and tempdirectory <> "Modem dell" and tempdirectory <> "Script_Tools" then
FSO2.DeleteFolder(tempdirectory )
ofile.writeline cstr(now()) & " " & tempdirectory & " Delete Started"
if err.number <>0 then
ofile.writeline cstr(now()) & " " & Err.description
err.clear
else
ofile.writeline cstr(now()) & " " & tempdirectory & " has been deleted"
err.clear
end if
end if
' msgbox tempdirectory & " has been deleted"
End If
Next
'msgbox "Done"
ofile.writeline "DeleteOldFolders Completed"
ofile.writeline now()
che faccio partire con un bat :
c:\script\deloldfolder.vbs e:\migrazione\ 20 c:\script\delfolderslog.txt
Ma prima della cancellazione mi da permesso negato... mentre se cancello la cartella manualmente me lo fa fare :S
clockover
30-04-2010, 23:03
ciao,
purtroppo non mi riconosce il comando...
è un comando Unix... mentre tu sei con Windows!
qualcosa tipo
find /path/to/folder -type d -ctime 30 | xargs -I % rm -rf "%"
può andare ?
(se vuoi "30 O PIÙ" giorni fa, allora cambia il 30 in +30)
Questo comando lo sto provando ma cancella solo il contenuto di una cartella vecchia di 30 giorni, non la cartella stessa..
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.