Inhalt von Unterordnern löschen VBScript Prozedur
Hallo Zusammen
Ich habe folgenden Code um den Inhalt von Verzeichnissen zu löschen. Wie muss ich den Code erweitern, damit ich in dem Pfad den Inhalt sämtlicher Unterordner löschen kann? Die Unterordner also bestehen bleiben?
z.B.:
D:\Folder\1\"zu löschender Inhalt"
D:\Folder\2\"zu löschender Inhalt"
..
etc.
Gruss und Dank im Voraus!
Ich habe folgenden Code um den Inhalt von Verzeichnissen zu löschen. Wie muss ich den Code erweitern, damit ich in dem Pfad den Inhalt sämtlicher Unterordner löschen kann? Die Unterordner also bestehen bleiben?
z.B.:
D:\Folder\1\"zu löschender Inhalt"
D:\Folder\2\"zu löschender Inhalt"
..
etc.
Gruss und Dank im Voraus!
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
strPath = "D:\Folder"
Delete strPath
Sub Delete(StrFolder)
On Error Resume Next
Dim Folder
Set Folder = fso.GetFolder(StrFolder)
For Each SubFolder in Folder.SubFolders
Delete SubFolder
If Folder.Attributes And 1 Then
Folder.Attributes = Folder.Attributes - 1
End If
SubFolder.Delete
Next
For Each File In Folder.Files
If File.Attributes And 1 Then
File.Attributes = File.Attributes - 1
End If
File.Delete
Next
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 173509
Url: https://administrator.de/contentid/173509
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
12 Kommentare
Neuester Kommentar
Hallo RetroDude!
Du hast doch bereits Rekursion in Deinem (leider noch nicht als Code ) Ansatz - dann sollte doch eigentlich etwas in der Art reichen:
Eine Anmerkung zur Variablendeklaration in VBS: Wenn Du schon "
Grüße
bastla
Du hast doch bereits Rekursion in Deinem (leider noch nicht als Code ) Ansatz - dann sollte doch eigentlich etwas in der Art reichen:
Set fso = CreateObject("Scripting.FileSystemObject")
strPath = "D:\Folder"
Delete strPath
Sub Delete(StrFolder)
On Error Resume Next
Set Folder = fso.GetFolder(StrFolder)
For Each SubFolder in Folder.SubFolders
fso.DeleteFile SubFolder.Path & "\*.*", True
Delete SubFolder
Next
End Sub
Dim
" verwendest, dann aber auch konsequent für alle vorkommenden Variablen und zusammen mit "Option Explicit
" - ansonsten kannst Du sie auch gleich einsparen ...Grüße
bastla
Hallo RetroDude!
Das hatte ich anders verstanden ...
Wenn Du die erste Unterordner-Ebene erhalten, aber alle Inhalte entfernen willst, dann einfach so:
Grüße
bastla
Das hatte ich anders verstanden ...
Wenn Du die erste Unterordner-Ebene erhalten, aber alle Inhalte entfernen willst, dann einfach so:
Set fso = CreateObject("Scripting.FileSystemObject")
strPath = "D:\Folder"
Set Folder = fso.GetFolder(strPath)
For Each SubFolder in Folder.SubFolders
fso.DeleteFile SubFolder.Path & "\*.*", True
fso.DeleteFolder SubFolder.Path & "\*.*", True
Next
bastla
@ovu-p86
@RetroDude
Wenn CMD tatsächlich eine Option ist, dann:
Grüße
bastla
Jetzt bekomme ich bestimmt Haue weil nach einem VB-Script gefragt wurde.
Die Haue gibt's dafür, dass DuDie Unterordner der Unterordner lässt er aber stehen.
ignoriert hast ... @RetroDude
Wenn CMD tatsächlich eine Option ist, dann:
@echo off & setlocal
set "Pfad=D:\Folder"
del /a /f /q "%Pfad%\*.*"
for /d %%i in ("%Pfad%\*.*") do (
for /d %%u in ("%%~i\*.*") do rd /s /q "%%u"
del /a /f /q "%%i\*.*"
)
bastla
Hallo Bastla,
das habe ich in der Tat ignoriert. Hatte das so mißverstanden, daß kurz gesagt: alle Dateien gelöscht, aber die komplette Ordnerstruktur erhalten bleiben soll. Und nur das mein cmd.
Das mit "der Haue" hab ich nur geschrieben, weil meiner Ansicht nach, das Klima im Forum in letzter Zeit rauer geworden war.
Ansonsten nochmal meine Hochachtung für dich. Hab viel von dir, deinen Beiträgen lernen können. Du hast mir auch schon häufiger effektiv direkt geholfen. Und das auch mit guten, nachvollziehbaren Erklärungen. - Danke -
In diesem Sinne
Gruß
Uwe
das habe ich in der Tat ignoriert. Hatte das so mißverstanden, daß kurz gesagt: alle Dateien gelöscht, aber die komplette Ordnerstruktur erhalten bleiben soll. Und nur das mein cmd.
Das mit "der Haue" hab ich nur geschrieben, weil meiner Ansicht nach, das Klima im Forum in letzter Zeit rauer geworden war.
Ansonsten nochmal meine Hochachtung für dich. Hab viel von dir, deinen Beiträgen lernen können. Du hast mir auch schon häufiger effektiv direkt geholfen. Und das auch mit guten, nachvollziehbaren Erklärungen. - Danke -
In diesem Sinne
Gruß
Uwe