Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Inhalt von Unterordnern löschen VBScript Prozedur

Mitglied: RetroDude

RetroDude (Level 1) - Jetzt verbinden

22.09.2011, aktualisiert 15:26 Uhr, 5698 Aufrufe, 12 Kommentare

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!
01.
 
02.
Dim fso 
03.
Set fso = CreateObject("Scripting.FileSystemObject") 
04.
 
05.
strPath = "D:\Folder" 
06.
 
07.
Delete strPath 
08.
 
09.
Sub Delete(StrFolder) 
10.
On Error Resume Next 
11.
Dim Folder 
12.
Set Folder = fso.GetFolder(StrFolder) 
13.
 
14.
For Each SubFolder in Folder.SubFolders 
15.
Delete SubFolder 
16.
If Folder.Attributes And 1 Then 
17.
Folder.Attributes = Folder.Attributes - 1 
18.
End If 
19.
SubFolder.Delete 
20.
Next 
21.
 
22.
For Each File In Folder.Files 
23.
If File.Attributes And 1 Then 
24.
File.Attributes = File.Attributes - 1 
25.
End If 
26.
File.Delete 
27.
Next 
28.
End Sub 
29.
 
Mitglied: RetroDude
22.09.2011 um 14:52 Uhr
Ich habe mir bereits etwas Gedanken gemacht und sehe folgenden Lösungsweg:

1. Die Namen sämtlicher Unterverzeichnisse einlesen und diese in einem Array ablegen.
2. Den Array durchzählen und die Anzahl Iterationen inkl. Array dem Sub übergeben.

Kann mir bei der Umsetzung meines Plans jemand unter die Arme greifen? Oder ist dieser Ansatz nicht tauglich?

Thanx!
Bitte warten ..
Mitglied: bastla
22.09.2011 um 15:15 Uhr
Hallo RetroDude!

Du hast doch bereits Rekursion in Deinem (leider noch nicht als Code formatierten) Ansatz - dann sollte doch eigentlich etwas in der Art reichen:
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
 
03.
strPath = "D:\Folder" 
04.
 
05.
Delete strPath 
06.
 
07.
Sub Delete(StrFolder) 
08.
On Error Resume Next 
09.
Set Folder = fso.GetFolder(StrFolder) 
10.
For Each SubFolder in Folder.SubFolders 
11.
    fso.DeleteFile SubFolder.Path & "\*.*", True 
12.
    Delete SubFolder 
13.
Next 
14.
End Sub
Eine Anmerkung zur Variablendeklaration in VBS: Wenn Du schon "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
Bitte warten ..
Mitglied: RetroDude
22.09.2011 um 15:36 Uhr
Hallo Bastla

Danke für den Hinweis wegen der Formatierung. Habe es ausprobiert. So löscht er zwar die Files auf erster Ebene. Die Unterordner der Unterordner lässt er aber stehen. Dementsprechend auch deren Inhalt. Was muss ich ändern, daimt er sämtlichen Inhalt der Unterordner des entsprechenden Ordners löscht?

Danke und Gruss
Bitte warten ..
Mitglied: bastla
22.09.2011 um 15:49 Uhr
Hallo RetroDude!

Das hatte ich anders verstanden ...

Wenn Du die erste Unterordner-Ebene erhalten, aber alle Inhalte entfernen willst, dann einfach so:
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
 
03.
strPath = "D:\Folder" 
04.
 
05.
Set Folder = fso.GetFolder(strPath) 
06.
For Each SubFolder in Folder.SubFolders 
07.
    fso.DeleteFile SubFolder.Path & "\*.*", True 
08.
    fso.DeleteFolder SubFolder.Path & "\*.*", True 
09.
Next
Grüße
bastla
Bitte warten ..
Mitglied: RetroDude
22.09.2011 um 16:02 Uhr
Danke Bastla

Funktioniert bestens. Ich hätte noch ne kleine Frage. Was müsste ich hizufügen, damit im Verzeichnis D:\Folder, in dem ja nur die Ordner bereinigt werden, zusätzlich sämtliche Dateien gelöscht würden?

Gruss und Danke nochmals!
Bitte warten ..
Mitglied: bastla
22.09.2011 um 16:31 Uhr
Hallo RetroDude!

Wenn Du die Zeile 7 betrachtest, und unter Berücksichtigung der Tatsache, dass Du den Pfad gar nicht ermitteln musst, weil er bereits in "strPath" steht, könntest Du das vielleicht auch selbst schaffen ...

Grüße
bastla
Bitte warten ..
Mitglied: RetroDude
22.09.2011 um 16:34 Uhr
Hast recht.

fso.DeleteFile strPath & "\*.*", True

gell?

Gruss
Bitte warten ..
Mitglied: ovu-p86
23.09.2011 um 03:15 Uhr
Hallo RetroDude,

hier nochmal eine Lösung mit einem "cmd".
01.
cd /d D:\Folder && del /a /s /f /q *.*
erfüllt den gleichen Zweck.

Jetzt bekomme ich bestimmt Haue weil nach einem VB-Script gefragt wurde. Aber das ist ja eine Alternative.


Gruß
Uwe
Bitte warten ..
Mitglied: RetroDude
23.09.2011 um 09:11 Uhr
Hallo Uwe

Danke für den Input. Ich bin stets offen für konstruktive Vorschläge. Deiner gehört zu diesen. Lass Dich nicht von frustrierten Mitgliedern von diesem Pfad abbringen. Solche Beiträge sind eine Bereicherung für einen Thread. Viele Wege führen ja bekanntlich nach Rom.

Gruss und schönes Wochenende!

Retrodude
Bitte warten ..
Mitglied: bastla
23.09.2011 um 14:50 Uhr
@ovu-p86
Jetzt bekomme ich bestimmt Haue weil nach einem VB-Script gefragt wurde.
Die Haue gibt's dafür, dass Du
Die Unterordner der Unterordner lässt er aber stehen.
ignoriert hast ...
@RetroDude
Wenn CMD tatsächlich eine Option ist, dann:
01.
@echo off & setlocal 
02.
set "Pfad=D:\Folder" 
03.
 
04.
del /a /f /q "%Pfad%\*.*" 
05.
for /d %%i in ("%Pfad%\*.*") do ( 
06.
    for /d %%u in ("%%~i\*.*") do rd /s /q "%%u" 
07.
    del /a /f /q "%%i\*.*" 
08.
)
Grüße
bastla
Bitte warten ..
Mitglied: ovu-p86
23.09.2011 um 23:29 Uhr
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
Bitte warten ..
Mitglied: bastla
24.09.2011 um 13:12 Uhr
Hallo ovu-p86!
Hab viel von dir, deinen Beiträgen lernen können.
Danke - aber das meiste davon habe ich selbst erst hier gelernt / verbessert ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Lösche Inhalt in bestimmten Unterordner wenn älter als

gelöst Frage von KnuefiBatch & Shell7 Kommentare

Hallo, ich benötige eure Hilfe. Ich habe unterstehendes Script, leider funktioniert es nicht. Es wird nichts gelöscht. Was habe ...

VB for Applications

Outlook Email VBScript Inhalt

gelöst Frage von TheFalconVB for Applications2 Kommentare

Hallo zusammen, habe hier ein kleines VBScript welches fast perfekt läuft: Er werden jetzt die Inhalte wie folgt ausgegeben: ...

Windows 7

Über die CMD nur einen Ordnerinhalt mit Unterordnern löschen

gelöst Frage von M.MarzWindows 713 Kommentare

Hallo zusammen, ich möchte gerne innerhalb von einem Ordner der auf C: liegt alles löschen. Zum Testen habe ich ...

Exchange Server

Inhalt von Postfächern in Exchange löschen

gelöst Frage von m.reegerExchange Server9 Kommentare

Hallo liebe Admins, ich bin gerade dabei den Exchange aufzuräumen und stoße hier mal wieder an meine Powershell-Kenntnis grenzen. ...

Neue Wissensbeiträge
Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 23 StundenDatenschutz2 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 2 TagenVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 4 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 4 TagenHyper-V1 Kommentar

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Heiß diskutierte Inhalte
E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail20 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Windows Server
In-Place Upgrade von Windows Server 2008 R2 Datacenter zu Windows Server 2016 Datacenter (Zwischenschritt über 2012 R2)
gelöst Frage von TowerpleaseWindows Server16 Kommentare

Hallo Administratoren, Wir haben uns vor ein paar Monaten Windows Server 2016 Datacenter Lizenzen gekauft und wollen nun unsere ...

Windows 7
Mit gpedit gesetzte Richtlinien in rsop.msc nicht definiert und ausgegraut
gelöst Frage von 137006Windows 715 Kommentare

Hallo zusammen, anfangs verweise ich fairerweise daruf dass ich dieses Thema bereits im Forum angeschnitten habe, nachdem ich hier ...

Firewall
Wesyb Offline
Frage von DkuehlbornFirewall13 Kommentare

Hallo Kollegen, ein Kunde hat von Wesyb die Sicherheitslösung im Einsatz. Seit August scheint deren Internetseite nicht mehr verfügbar ...