tasknet
Goto Top

Bestimmte Ordner rekursiv per Batch löschen

Hallo zusammen,

ich habe folgendes Problem:

Eine Radiologie schickt Dateien und Verzeichnisse auf ein gemapptes Laufwerk.
Wir haben dort volle Berechtigung.

Die Ordnerstruktur sieht ungefähr wie folgt aus:

D:\Roentgen\Patientenname
D:\Roentgen\Patientenname\DICOM
D:\Roentgen\Patientenname\RES
D:\Roentgen\Patientenname\RES\ASIA
D:\Roentgen\Patientenname\RES\EUROPE
D:\Roentgen\Patientenname\RES\AUSTRALIA
D:\Roentgen\Patientenname\RES\BLABLA 1
D:\Roentgen\Patientenname\RES\BLABLA 2
D:\Roentgen\Patientenname\RES\MUMPITZ
D:\Roentgen\Patientenname\JRE

Ich muss jetzt eine Batchdatei erstellen die den Ordner "RES" rekursiv löschen kann.
Der oberste Ordner "Patienname" ändert sich natürlich regelmäßig so dass die Batchdatei automatisch alles unter dem Ordner "D:\ROENTGEN\" durchsuchen soll und dann jeweils unter jedem Unterordner des jeweiligen Patienten den Ordner RES samt Dateien löschen muss.

Ich habe es mit

for /f "tokens=*" %%i in ('dir /ad /s /b "d:\ir" ^|find "RES"') do rmdir /s /q %%i

versucht, allerdings findet er dabei auch den Suchstring RES im Ordner des Patientennamen wie zum Beispiel "Harald Ressch 13051943 007754"
Den Ordner löscht er dann leider auch.

ich muss den o.g. Befehl so angepasst haben, dass er nur nach "RES" sucht und dabei nicht die Verzeichnisse auswählt in denen der Begriff auch vor kommt.

Jemand einen Tipp dazu?

Gruß

TASKNET

Content-Key: 229661

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

Printed on: April 24, 2024 at 04:04 o'clock

Member: bastla
Solution bastla Feb 13, 2014 updated at 21:50:10 (UTC)
Goto Top
Hallo TASKnet!

Sollte sich (ungetestet) etwa so machen lassen:
for /f "delims=" %%i in ('dir /s/b D:\Roentgen\RES 2^>nul') do echo rd /s /q "%%i"
Wegen des "echo" wird (zum Testen) der "rd"-Befehl nur angezeigt, aber nicht ausgeführt ...

Grüße
bastla
Member: TASKnet
TASKnet Feb 13, 2014 at 21:29:19 (UTC)
Goto Top
Hallo bastla,

funktioniert leider nicht face-sad

Bin über weitere Vorschläge dankbar...

Und wie gesagt, die Batch soll in allen Ordnern nach "RES" suchen und alle Ordner die "RES" heissen löschen...

Grüße
TASKnet
Member: bastla
bastla Feb 13, 2014 at 21:32:49 (UTC)
Goto Top
Hallo TASKnet!

Lässt sich
funktioniert leider nicht
noch etwas konkreter formulieren?

Grüße
bastla
Member: TASKnet
TASKnet Feb 13, 2014 at 21:49:47 (UTC)
Goto Top
Sorry, mein Fehler.....

Habe da jetzt fast 8h dran gesessen so das ich einen Fehler, aufgrund mangelnder Konzentration, in meiner Batchdatei gemacht habe.
Manchmal sieht man den Wald vor lauter Bäume nicht face-smile

Herzlichen Dank bastla.....

Gruß
TASKnet
Member: bastla
bastla Feb 13, 2014 at 21:53:39 (UTC)
Goto Top
Hallo TASKnet!

Wenn Du noch absichern möchtest, dass nur Ordner, aber keine Dateien mit dem Namen "RES" (dürften zwar eher selten sein, aber sicher ist sicher), gefunden werden, dann zusätzlich "/ad" im "dir", also:
for /f "delims=" %%i in ('dir /s/b/ad D:\Roentgen\RES 2^>nul') do echo rd /s /q "%%i"  
Grüße
bastla