@LMondi e a tutti quelli che finora si sono confusi: vbs, non VB6
@nanu_90
Resto dell'idea che con un banale file batch faresti molto prima, comunque la strada giusta è quella di una procedura ricorsiva; purtroppo (o per fortuna
) non uso quasi mai VBS, ma ho tentato di adattare del codice VB6 ai tuoi scopi:
codice:
Dim mFso, Drive
Drive="c:\"
Set mFso = CreateObject("Scripting.FileSystemObject")
DeleteTemps(mFso.GetFolder(Drive))
Sub DeleteTemps(Fld)
'Ignora qualunque errore (so che è orripilante ma con VBS non si può fare altro :dhò: )
On Error Resume Next
Dim tFld, tFil
'tFld = una subdirectory
'Fld = cartella attuale
'tFile = un file contenuto nella cartella attuale
'Imposta la variabile Fld sulla cartella corrente
'Enumera i files contenuti
For Each tFil In Fld.Files
'Confronta il nome del file
If UCase(rExt(tFil.Name)) = "TMP" Then
tFil.Delete()
End If
Next
'Enumera le cartelle
If Fld.SubFolders.Count > 0 Then
For Each tFld In Fld.SubFolders
'Processa la sottocartella
DeleteTemps tFld
Next
End If
End Sub
Function rExt(filename)
'Funzione che restituisce l'estensione di un file
rExt = Right(filename, Len(filename) - InStrRev(filename, "."))
End Function