|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
VB, cancellare file vecchi?
ciao
dovrei cancellare periodicamente dei file da una cartella, ad esempio tutti quelli che hanno più di due settimane, ho trovato questo script che però cancella le dir... qualcuno gentilmente saprebbe modificarlo in modo che cancelli i file? io non so programmare... grazie a tutti
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 611
|
Dim i, fso, f, f1,f2, sf, BasePath, CalcResult, fNameArray()
BasePath = "D:\Reports" Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(BasePath) Set sf = f.SubFolders For Each f1 in sf For Each f2 in f1.getFile 'Oppure una funzione simile,non ricordo CalcResult = DateDiff("d",f1.DateCreated,Now) if CalcResult > 2 then ReDim preserve fNameArray(i) fNameArray(i) = f1.Name i = i + 1 end if Next For Each fName in fNameArray FSO.DeleteFile(BasePath & "\" & fName) Next |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
grazie, ma mi da un errore "previsto next"
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Questo che ho appena fatto e provato, funziona:
Codice:
' ATTENZIONE CHE I FILE SARANNO CANCELLATI DEFINITIVAMENTE
' NON ANDRANNO NEL CESTINO!!!
' directory principale (MODIFICARE IL PERCORSO)
path = "c:\AAA"
' cancella file più vecchi di 7 giorni (MODIFICARE IL N°)
killdate = date() - 7
arFiles = Array()
set fso = createobject("scripting.filesystemobject")
' sub che cancella i file; il 4° parametro indica se analizzare anche le sottodirectory
' se SI allora scrivere true, se NO allora scrivere false
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 "Impossibile cancellare: " & arFiles(n).path
else
nDeleted = nDeleted + 1
end if
on error goto 0
next
msgbox nDeleted & " di " & ubound(arFiles)+1 & " file vecchi cancellati"
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
Salva il file come .vbs ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Quote:
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
Quote:
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Basta cancellare questa riga:
Codice:
msgbox nDeleted & " di " & ubound(arFiles)+1 & " file vecchi cancellati" Codice:
if err.number <> 0 then
wscript.echo "Impossibile cancellare: " & arFiles(n).path
else
nDeleted = nDeleted + 1
end if
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino Ultima modifica di mynos79 : 19-06-2006 alle 11:46. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
Quote:
ancora grazie mille e a buon rendere
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
volevo utilizzare un singolo script da utilizzare su più
directory ma aggiungere un secondo percorso non funziona.... tipo path = "c:\AAA" path = "c:\BBB" esegue l'operazione solo sulla dir BBB... è normale?
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
E' normale
In quanto prima assegni alla variabile path la stringa "C:\AAA" e poi le riassegni la stringa C:\BBB ... in pratica gli sovrascrivi il valore e quindi lui considera solo il secondo. Per passare più directory bisogna modificare il programma ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
Quote:
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Codice:
' ATTENZIONE CHE I FILE SARANNO CANCELLATI DEFINITIVAMENTE
' NON ANDRANNO NEL CESTINO!!!
dim path()
' cambiare il numero con il numero massimo di percorsi inseriti
redim path(3)
' directory principale (MODIFICARE IL PERCORSO) e cambiare l'indice
' l'indice va da 0 al numero dei percorsi meno 1
path(0) = "c:\AAA"
path(1) = "c:\BBB"
path(2) = "c:\CCC"
' cancella file più vecchi di n giorni (MODIFICARE IL N°)
killdate = date() - 7
arFiles = Array()
set fso = createobject("scripting.filesystemobject")
for each p in path
' cambiare il 4° parametro con 'true' o 'false' se si vuole o meno
' ciclare le sottocirectory
SelectFiles p, killdate, arFiles, true
for n = 0 to ubound(arFiles)
on error resume next
arFiles(n).delete true
next
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
Le righe da modificare stavolta sono queste: redim path(3) --> cambiare il 3 con il numero dei percorsi usati ... path(0) = "c:\AAA" --> cambiare sia il percorso tra virgolette che il numero tra parentesi (gli indici vanno da 0 a n-1) path(1) = "c:\BBB" path(2) = "c:\CCC" ... killdate = date() - 7 --> cambiare il 7 col numero dei giorni ... SelectFiles p, killdate, arFiles, true --> cambiare il true con true o false a seconda se si vuole controllare anche le varie sottodirectory
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Come vedi ho già tolto tutti i messaggi, anche quelli di errore visto che non ti servono.
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
ma sei troppo gentile!!! se passi da milano hai una birra offerta
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Eh eh
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Apr 2004
Città: Milano
Messaggi: 3620
|
Quote:
ciao Paolo
__________________
Nvidia Shield TV Xbox One X Intel Nuc10i7beh Google Home Hub QNAP HS-453DX Raspberry 4 + Allo Boss Master |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:38.



















