Bestimmte Ordner Suchen und Löschen
Hallo Community,
hab hier schon fleisig im Bereich Batch&Shell gesucht und auch einige nützliche Sachen gefunden aber mir fehlen noch die letzten 5% bis zum Ziel. Wollte jetzt nicht deswegen einen neuen Beitrag aufmachen. Vielleicht kannst du mir weiterhelfen. Folgende Situation.
Habe eine Ordnerstruktur (Tiefe zwischen 4 und 8). Diese Struktur wird immer dann kopiert wenn ein neues Projekt begonnen wird.
xcopy C:\Projekt_xx C:\Projekt_yy /T /E
Die kopierte Ordnerstruktur schaut so in etwa aus:
Projekt_yy\Ordner_A\Version1.0\
Projekt_yy\Ordner_A\Version2.1\
Projekt_yy\Ordner_B\Version0.2\
Projekt_yy\Ordner_B\Version1.5\
Projekt_yy\Ordner_C\Ordner_D\Version1.0\
usw.
Möchte in der kopierten Ordnerstruktur alle Ordner löschen, die mit Version... beginnen.
Befehl steht in Batchdatei:
for /f "usebackq" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @echo rd /s /q %%i
jetzt werden alle Ordner angezeigt in denen sich ein Ordner mit Version... befindet aber nicht gelöscht.
Wie muss der Befehl ausschauen, damit diese auch gelöscht werden. Ich hoffe du kannst mir helfen.
Danke.
Gruß stichy
hab hier schon fleisig im Bereich Batch&Shell gesucht und auch einige nützliche Sachen gefunden aber mir fehlen noch die letzten 5% bis zum Ziel. Wollte jetzt nicht deswegen einen neuen Beitrag aufmachen. Vielleicht kannst du mir weiterhelfen. Folgende Situation.
Habe eine Ordnerstruktur (Tiefe zwischen 4 und 8). Diese Struktur wird immer dann kopiert wenn ein neues Projekt begonnen wird.
xcopy C:\Projekt_xx C:\Projekt_yy /T /E
Die kopierte Ordnerstruktur schaut so in etwa aus:
Projekt_yy\Ordner_A\Version1.0\
Projekt_yy\Ordner_A\Version2.1\
Projekt_yy\Ordner_B\Version0.2\
Projekt_yy\Ordner_B\Version1.5\
Projekt_yy\Ordner_C\Ordner_D\Version1.0\
usw.
Möchte in der kopierten Ordnerstruktur alle Ordner löschen, die mit Version... beginnen.
Befehl steht in Batchdatei:
for /f "usebackq" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @echo rd /s /q %%i
jetzt werden alle Ordner angezeigt in denen sich ein Ordner mit Version... befindet aber nicht gelöscht.
Wie muss der Befehl ausschauen, damit diese auch gelöscht werden. Ich hoffe du kannst mir helfen.
Danke.
Gruß stichy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127814
Url: https://administrator.de/forum/bestimmte-ordner-suchen-und-loeschen-127814.html
Ausgedruckt am: 23.04.2025 um 07:04 Uhr
7 Kommentare
Neuester Kommentar

n abend
Nimm beide Zeilen - kopiere Sie in je eine neue Textdatei und gib dann in einer Dosbox

Oder einfacher:
Gruß
btw: Bastla & Biber - die für diese Schreibweise do echo bekannt sind - schreiben das mit dem "Echo - zu Testzwecken" auch immer dazu.
wenn ich folgenden Befehl
for /f "usebackq" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @echo rd /s /q %%i
habe nun den Befehl abgewandelt wie du beschrieben hast
for /f "usebackq" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do del rd /s /q %%i
for /f "usebackq" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @echo rd /s /q %%i
habe nun den Befehl abgewandelt wie du beschrieben hast
for /f "usebackq" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do del rd /s /q %%i
Nimm beide Zeilen - kopiere Sie in je eine neue Textdatei und gib dann in einer Dosbox
fc datei1.txt datei2.txt
ein Oder einfacher:
do del rd?
do rd!
do rd!
Gruß
btw: Bastla & Biber - die für diese Schreibweise do echo bekannt sind - schreiben das mit dem "Echo - zu Testzwecken" auch immer dazu.

Hallo Echo - Hallo stichy 
der FC Befehl sollte dir doch nur den Unterschied zeigen, den du da angestellt hast..
Falls du aber noch eine Hilfestellung brauchst...
Mit welchem Befehl löscht man Dateien?
Mit welchem Befehl löscht man Ordner?
Willst du Ordner oder Dateien löschen?
Wie muß dann der Befehl dazu lauten?
Do del or not do rd - das ist wohl keine Frage...
echo sollte raus - nicht del rein
der FC Befehl sollte dir doch nur den Unterschied zeigen, den du da angestellt hast..
Falls du aber noch eine Hilfestellung brauchst...
Mit welchem Befehl löscht man Dateien?
Mit welchem Befehl löscht man Ordner?
Willst du Ordner oder Dateien löschen?
Wie muß dann der Befehl dazu lauten?
@echo rd /s /q %%i
habe nun den Befehl abgewandelt wie du beschrieben hast
do del rd /s /q %%i
habe nun den Befehl abgewandelt wie du beschrieben hast
do del rd /s /q %%i
Do del or not do rd - das ist wohl keine Frage...
echo sollte raus - nicht del rein
Moin stichy,
bevor sich das hier noch länger hinzieht:
TsukiSan meinte (wie auch T-Mo geschrieben hat):
Also sollte diese Zeile...
noch schnell ergänzt werden, damit auch Datei/Verzeichnisnamen mit Leerzeichen verarbeitet werden:
(siehe deine "...Browser\Apple" und "..Browser\Avant"-Anzeige)
Außerdem, damit beim Löschen nix kaputtgeht und wenn es stimmt, was du schreibst:
Lass die beiden Schalter /s und /q des RD-Befehls weg (Unterverzeichnisse/Dateien gibt es ja nicht laut Plan)
Bleibt:
Wenn bzw. nachdem diese Zeile mit "@echo" hinreichend getestet ist, lösche das Wort "@echo" raus.
Die letzte Zeile kann dann als Batch "produktiv" gehen und alle anderen Versuchsvarianten gelöscht werden.
Grüße
Biber
bevor sich das hier noch länger hinzieht:
TsukiSan meinte (wie auch T-Mo geschrieben hat):
- Wenn der Befehl RD ausgeführt statt angezeigt werden soll, dann lass das "ECHO" einfach weg.
- Verwende "..DO RD...." statt "DO ECHO RD...".
Also sollte diese Zeile...
for /f "usebackq" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @echo rd /s /q %%i
for /f "usebackq Delims=" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @echo rd /s /q "%%i"
Außerdem, damit beim Löschen nix kaputtgeht und wenn es stimmt, was du schreibst:
Die "Version.." Ordner sind ohne Inhalt.
...dann [dringender Tipp!]:Lass die beiden Schalter /s und /q des RD-Befehls weg (Unterverzeichnisse/Dateien gibt es ja nicht laut Plan)
Bleibt:
@for /f "usebackq Delims=" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @echo rd "%%i"
@for /f "usebackq Delims=" %%i IN (`dir E:\batch_test\Version*.* /s /b /ad`) do @rd "%%i"
Die letzte Zeile kann dann als Batch "produktiv" gehen und alle anderen Versuchsvarianten gelöscht werden.
Grüße
Biber