- #1
P
profhase
Guest
Hallo habe ein kleines Probleme mit meinem Script das temporäre Dateien löschen soll, mir fehlt die rekursive Schleife
bisher löscht er alle tempfateien also mit der ~ im Startordner und in der nächsten Stufe der Subordner, allerdings durchsucht er nicht die Subordner der Subordern dafür brauch ich eben noch die Schleife ...
wär super wenn mir jmd helfen könnte
mfg
profhase
Code:
'#######################Maschinenbau Kitz######################################
'# Description: deletes Files with definable Name (also in Subfolders) #
'# Version: 1.3 #
'# Author: Thomas Hefke #
'# Date of Creation: 05/11/23 :: 10:28 #
'# Date of last Change: 05/11/23 :: 14:05 #
'##############################################################################
'Variablen müssen deklariert werden
option explicit
'Variablen Deklaration
Dim fso->Variable zur Object Erstellung
Dim f, fc , f1->Variablen zur Dateiensuche
Dim name, temp, help, startpfad->Hilfsvariablen zur weiteren verarbeitung
Dim pfad, Zeichen->je nach wunsch anpassbar : pfad beschreibt den Pfad aus dem die temp files gelöscht werden sollen und Zeichen bestimmt wie viele Zeichen der Vergleichsoperant hat
Dim cfi, cfo , volumen->Statistik variablen zur größe und Anzahl von Dateien / Ordnern
Dim ff, s, fsubfolder, s1->Variablen zur Dateiensuche in Subordnern
'###############################################################################
'veränderbare Pfadangabe
pfad = C:\temp\
startpfad = pfad
'Erstellung des Filesystemobjects
Set fso = CreateObject(Scripting.FileSystemObject)
'Benutzung der GetFolder Methode um oben in der Variable pfad eingegeben Pfad einzulesen
Set f = fso.GetFolder(pfad)
'Benutzung der Eigenschaft Files um alle Files des Ordners auszulesen
Set fc = f.Files
'Counter für Anzahl und Größe der gelöschten Dateien auf 0 gesetzt
cfi = 0
cfo = 0
volumen = 0
'Funktion durchsuchen wird ausgeführt
durchsuchen()
'######################################bis hier wird der Main Ordner(pfad) durchsucht
'schleife für Subordner
Set ff = F.SubFolders
Set s = fso.GetFolder(pfad)
For Each s1 in ff
Set fsubfolder = fso.getfolder(s1)
Set fc = fsubfolder.Files
pfad = startpfad&s1.name&\
durchsuchen()
cfo = cfo + 1
Next
'#################################################################Ausgabe des Ergebnisses
Wscript.Echo (Es wurden & cfi & Dateien aus dem Pfad &startpfad & aus &cfo & Subordnern gelöscht und diese Dateien hatte eine Größe von & volumen & Bytes )
'Function durchsuchen mit For Schleife die alle Dateien des Ordners druchläuft
Function durchsuchen
For each f1 in fc
->Name beschränkt sich auf den ersten Buchstaben des Dateinamens
Zeichen = f1.name
Zeichen = Left(Zeichen,1)
->If Abfrage auf bestimmten Dateinamen der gelöscht werden soll
If Zeichen = ~ Then->Vergleichselement
temp = f1.name->Variable temp zum löschen wird gesetzt
help = f1.size
fso.deletefile(pfad&temp)-> Datei wird gelöscht
cfi = cfi + 1->Zähler für die Ausgabe der Anzahl der gelöschten Dateien wird erhöht um 1
volumen = volumen + help
End if
Next
End function
bisher löscht er alle tempfateien also mit der ~ im Startordner und in der nächsten Stufe der Subordner, allerdings durchsucht er nicht die Subordner der Subordern dafür brauch ich eben noch die Schleife ...
wär super wenn mir jmd helfen könnte
mfg
profhase