gear
Goto Top

Ordner suchen, nur dateien und Unterordner löschen

Hi Leutz,

teile meiner Frage habe ich zwar hier schon gefunden, allerdings fehlt mir noch etwas.

Bräuchte ein batch-script, das auf einem Laufwerk nach einem bestimmten Ordnernamen sucht und, wenn er diesen gefunden hat alle darin befindlichen Dateien und Unterordner löscht. Allerdings muss der Ordner, nach dem gesucht wurde bestehen bleiben.
Wie geht das?

Danke im Voraus

Gear

Content-Key: 129574

Url: https://administrator.de/contentid/129574

Printed on: April 23, 2024 at 17:04 o'clock

Member: Farbauti
Farbauti Nov 17, 2009 at 17:18:25 (UTC)
Goto Top
Warum löscht du nicht einfach den Ordner (rmdir) und legst ihn gleich danach wieder an (mkdir)?

Wenn der Ordner bestehen bleiben muss, sollte das hier funktionieren:
set FOUNDDIR=c:\tmp

for /d %%d in (%FOUNDDIR%\*) do rmdir /s /q %%d
del %FOUNDDIR%\*

Gruß, Farbauti.
Member: gear
gear Nov 18, 2009 at 07:57:59 (UTC)
Goto Top
Hmm nun weil auf diesen Ordnern spezielle Berechtigungen gesetzt sind, die nach dem löschen weg wären face-smile
Member: Biber
Biber Nov 18, 2009 at 11:50:22 (UTC)
Goto Top
Moin gear,

Zitat von @gear:
Bräuchte ein batch-script, das auf einem Laufwerk nach einem bestimmten Ordnernamen sucht
und, wenn er diesen gefunden hat alle darin befindlichen Dateien und Unterordner löscht.
Ich halte diesen Plan für sehr sehr gewagt - ich rate dringendst davon ab, ein komplettes Laufwerk nach einem bestimmten Ordnernamen/einem bestimmten Dateinamen zu durchsuchen und per Batch automatisch und ohne Rückfrage alle Vorkommnisse zu löschen.

Natürlich geht mir dieses Windows-Weichei-Gesäusel mit "Wollen Sie wirklich.." und "Sind Sie sicher..." auch auf den Zopf.
Dennoch empfehle ich die folgenden Halbzeilen nur anzuwenden, wenn du glaubst zu wissen, was du tust.

Beispiel am CMD-Prompt (">" nicht mit eingeben, das ist mein Prompt).
>for /r "e:\" /d %i in ("te*") do @(for /d %j in ("%i\*") do @echo rd /s /q "%j" & echo del /q "%i\*.*")  
Die vorangegangene Zeile würde anzeigen, was sie im Echtfall ausführen würde:
del /q "e:\test\."  
rd /s /q "e:\test\now"  
rd /s /q "e:\test\OLGrpCalender"  
rd /s /q "e:\test\vbSkrypt"  
rd /s /q "e:\test\outlookcode.com"  
rd /s /q "e:\test\FolderRedirector"  
rd /s /q "e:\test\usbdlm"  
rd /s /q "e:\test\editini"  
rd /s /q "e:\test\CommandBurner"  
rd /s /q "e:\test\regon"  
rd /s /q "e:\test\AdFind"  
rd /s /q "e:\test\WinObj"  
rd /s /q "e:\test\FileACL"  
rd /s /q "e:\test\gammadyne.com"  
rd /s /q "e:\test\DirectoryListPrintDE"  
rd /s /q "e:\test\wasfile"  
rd /s /q "e:\test\jacksum-1.7.0"  
rd /s /q "e:\test\cronw"  
rd /s /q "e:\test\Software_de"  
rd /s /q "e:\test\ps$Quest_com"  
rd /s /q "e:\test\workshop2"  
del /q "e:\Dokus\TechRep\."  

  • es wird auf dem ganzen Laufwerk E: nach Ordnern mit dem Namen/der Wildcard "Te" gesucht
  • gefunden werden die Ordner "E:\Test" und "E:\Dokus\TechRep"
  • in beiden Fällen werden zunächst alle Dateien auf dieser Ordnerebene mit DEL gelöscht
  • und danach alle vorhandenen Unterordner dieses Ordners "mit RD /S /Q" weggeschrubbelt.

Das sollte von deiner Anforderung entsprechen.

Wenn du das wirklich als Batch unbesehen starten willst, dann:
  • Pack es in eine unformatierte Textdatei mit der Endung *.bat oder *.cmd
  • Ersetze alle einfachen Prozentzeichen (%i, %j9 durch doppelte (%%i, %%j)
  • Ersetze die Simulation "echo DEL ..." und "echo RD ..." durch "DEL ..." und "RD..."
  • setz einen grünen Haken an den Beitrag und werde glücklich.

Grüße
Biber
Member: gear
gear Nov 18, 2009 at 12:25:45 (UTC)
Goto Top
Super! Erst mal vielen Dank für die Info.
Kann es aber sein, dass ich das Script nur einmal ausführen kann?? Seltsamerweise "übersieht" es nun eine Datei, die nach dem ersten Durchlauf erstellt worden ist., Der Ausgabemodus bleibt ebenfalls leer...
Ne Idee?
Member: gear
gear Nov 18, 2009 at 12:27:19 (UTC)
Goto Top
Hab das Problem gefunden! Solange kein Unterordner existiert, löscht er auch keine Dateien face-smile)))
Member: Biber
Biber Nov 18, 2009 at 12:45:13 (UTC)
Goto Top
Moin gear,

Zitat von @gear:
Hab das Problem gefunden! Solange kein Unterordner existiert, löscht er auch keine Dateien face-smile)))
Dieses "Problem" tun wir Biber mit den lapidaren Worten "Works as designed.." ab.
Ist oben bei meiner Simulations-Ausgabe auch zu sehen... der Unterordner "E:\Dokus\Techrep\" hat auch keine Unterordner.

Denkst du noch an diesen kleinen Haken...?

Grüße
Biber
Member: gear
gear Nov 18, 2009 at 12:53:34 (UTC)
Goto Top
Ist ja auch net wirklich ein "Fehler" face-smile
Ich suche nicht mit wildcards .. ich suche nach einem festen Wort Andere Ordner mit diesem Namen gibt es bei uns nicht bzw. darf es nicht geben..genau aus diesem Grund

Danke