VBS - Alle Files mit einer bestimmten Endung zählen (mit allen Unterordnern)
Hallo ans Forum
Ich will in einem Ordner und allen Unterordnern alle Dateien mit einer bestimmten Endung zählen. Folgendes habe ich bereits:
Das Ziel ist, dass der Rückgabewert der Funktion der Anzahl Dateien dieses Dateityps entspricht. Mit dieser Funktion stimmt das Ergebnis allerdings nicht, da die Countervariable bei jedem Selbstaufruf wieder überschrieben wird. Offenbar fehlt mir das logische Vorstellungsvermögen oder sonst irgendwas, aber ich komme nicht auf die richtige Lösung, wie man dies lösen kann. Was muss ich tun, um die richtige Anzahl zu bekommen? Ich habe einen Blackout und mein Programmiermentor ist momentan in den Ferien....
Gruss TuXHunT3R
Ich will in einem Ordner und allen Unterordnern alle Dateien mit einer bestimmten Endung zählen. Folgendes habe ich bereits:
Function DoFolders(Fld, Typ, Counter)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Folder = ObjFSO.GetFolder(Fld)
For Each SubFolder In Folder.SubFolders
DoFolders SubFolder, Typ, Counter
Next
For Each File In Folder.Files
Set objFile = objFSO.GetFile(File)
if lcase(objFSO.GetExtensionName(objFile)) = lcase(Typ) Then
Counter = Counter + 1
End if
Next
DoFolders = Counter
End Function
Das Ziel ist, dass der Rückgabewert der Funktion der Anzahl Dateien dieses Dateityps entspricht. Mit dieser Funktion stimmt das Ergebnis allerdings nicht, da die Countervariable bei jedem Selbstaufruf wieder überschrieben wird. Offenbar fehlt mir das logische Vorstellungsvermögen oder sonst irgendwas, aber ich komme nicht auf die richtige Lösung, wie man dies lösen kann. Was muss ich tun, um die richtige Anzahl zu bekommen? Ich habe einen Blackout und mein Programmiermentor ist momentan in den Ferien....
Gruss TuXHunT3R
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 122057
Url: https://administrator.de/forum/vbs-alle-files-mit-einer-bestimmten-endung-zaehlen-mit-allen-unterordnern-122057.html
Ausgedruckt am: 17.04.2025 um 14:04 Uhr
2 Kommentare
Neuester Kommentar
2 Möglichkeiten:
1. Die Variable global definieren und gar nicht übergeben sondern immer mit der globalen arbeiten. Wobei globale Variablen fehleranfällig sind.
2. Den Rückgabewert der Funktion auch VERWENDEN.
In Zeile 5 übergibst Du zwar den Wert Counter, aber der Rückgabewert, wieviele in dem Ordner gefunden werden, wird verworfen.
Eventuell so (nicht getestet):
1. Die Variable global definieren und gar nicht übergeben sondern immer mit der globalen arbeiten. Wobei globale Variablen fehleranfällig sind.
2. Den Rückgabewert der Funktion auch VERWENDEN.
In Zeile 5 übergibst Du zwar den Wert Counter, aber der Rückgabewert, wieviele in dem Ordner gefunden werden, wird verworfen.
Eventuell so (nicht getestet):
counter = counter + DoFolders(SubFolder, Typ, Counter)