Löschen: Mehrere Unterordner von mehreren Ordnern löschen Wie man alle Unterordner von mehreren Ordnern löscht
#1
geschrieben 27. Januar 2015 - 21:40
für die Lösung dieses Problems und eines weiteren damit zusammenhängenden überweise ich an den Löser über Paypal 10 Euro: Ich suche nach einer Möglichkeit, entweder über das CMD-Fenster oder über eine BAT-Datei, wie man Unterordner bei folgender Struktur löscht, ABER ALLE HAUPTORDNER DIESER UNTERORDNER DABEI NICHT MIT LÖSCHT! ....
Die Ordnerstruktur ist wie folgt (es befinden sich keine Dateien in der Struktur, sondern nur Ordner!):
jeweils gilt V:\Bauvorhaben
Bauvorhaben\12345_Abba\Rechnungen\x\y\z
Bauvorhaben\12345_Abba\Bestellungen\x\y\z
Bauvorhaben\12345_Abba\Bilder\x\y\z
Bauvorhaben\12346_Abu\Rechnungen\x\y\z
Bauvorhaben\12346_Abu\Bestellungen\x\y\z
Bauvorhaben\12346_Abu\Bilder\x\y\z
Bauvorhaben\12347_Abz\Rechnungen\x\y\z
Bauvorhaben\12347_Abz\Bestellungen\x\y\z
Bauvorhaben\12347_Abz\Bilder\x\y\z
Ich möchte nun die Ordnerebene "Rechnungen, Bestellungen und Bilder" und alle weiteren Unterverzeichnisse danach löschen, ABER 12345_Abba, 12346_ABu und 12347_Abz beibehalten! Wie mache ich das mit entweder cmd oder Batch-Befehl?
Wenn jemand die Lösung dafür weiß und mir dann die Erstellung neu erstellter Ordner NUR FÜR ANSTELLE 12345_x und 12346_x und 12347_x nennt, dann überweise ich wie gesagt 10 EUro an den Helfer, meine Email-Adresse lautet slough_of_despond@hotmail.de
Wenn es Rückfragen gibt, einfach kurz nachfragen. Diese Lösung ist mir extrem wichtig!
Anzeige
#2
geschrieben 27. Januar 2015 - 21:47
So etwa:
for /D %%n in (*) do @(
cd "%%n"
rd /S /Q . > NUL 2> NUL
cd ..
)
Das löscht alles aus den Unterordnern, ohne sie selber zu entfernen.
Alternativ, noch ein bißchen einfacher:
for /D %%n in (*) do @(
rd /S /Q "%%n"
md "%%n"
)
Löscht die Ordner einzeln und erstellt dann einen neuen unter gleichem Namen. Der Effekt ist offensichtlich derselbe wie oben.
Ach ja. Fast vergessen. Bezahlung brauch ich nicht. Ist ein öffentliches Forum - jeder profitiert von diesem Ansatz, nicht nur Du selber.
Dieser Beitrag wurde von RalphS bearbeitet: 27. Januar 2015 - 21:48
#3
geschrieben 27. Januar 2015 - 21:48
(oder so wie RalphS)
Dieser Beitrag wurde von Holger_N bearbeitet: 27. Januar 2015 - 21:49
#4
geschrieben 27. Januar 2015 - 21:52
#5
geschrieben 27. Januar 2015 - 21:55
#6
geschrieben 27. Januar 2015 - 21:59
um es nochmal zu verdeutlichen: Ich habe folgende Ordnerstruktur ohne Dateien!:
V:\bauvorhaben\12345_Kunde\bestellungen\2010
V:\bauvorhaben\12345_Kunde\rechnungen\2010
V:\bauvorhaben\12345_Kunde\bilder\2010
V:\bauvorhaben\12346_Kunde\bestellungen\2010
V:\bauvorhaben\12346_Kunde\rechnungen\2010
V:\bauvorhaben\12346_Kunde\bilder\2010
V:\bauvorhaben\12346_Kunde\bestellungen\2010
V:\bauvorhaben\12346_Kunde\rechnungen\2010
V:\bauvorhaben\12346_Kunde\bilder\2010
und so geht es dann ca. 1900 mal weiter. Jetzt will ich ja nicht jedes Mal nach xxxxx_Kunde die bestellungen, rechnungen und bilder manuell löschen, sondern von jedem Kunden zugleich, aber dabei xxxxx(Nummer)_Kunde immer beibehalten, also nur alles FETTGEDRUCKTE UND DARUNTER LÖSCHEN. Was ist dafür die Lösung?
Zitat (Holger_N: 27. Januar 2015 - 21:48)
(oder so wie RalphS)
Hallo Holger, kannst du mir bitte die einzelnen Schritte kurz aufzeichnen, denn ich verstehe als absoluter Anfänger weder was du mit auslesen meinst noch wie man Namen speichert ohne die Unterordner einzubeziehen. Den Rest würde ich als Rookie dann hinbekommen.
Gruß
#7 _d4rkn3ss4ev3r_
geschrieben 29. Januar 2015 - 23:47
Die Batch muss dabei in den Hauptordner V:\bauvorhaben gelegt werden.
@echo off
cd /d "%~dp0"
for /f "tokens=1" %%i in ('dir /b /a:d') do set ordner=%%i&call :loop
echo Fertig
pause&exit
:loop
rd /s /q %ordner% >nul
mkdir %ordner% >nul
[attachment=46553:Unterordner.cmd.txt]
(.txt entfernen!)
#8
geschrieben 30. Januar 2015 - 14:33
Zitat (Iverson3: 27. Januar 2015 - 21:59)
Hallo Holger, kannst du mir bitte die einzelnen Schritte kurz aufzeichnen, denn ich verstehe als absoluter Anfänger weder was du mit auslesen meinst noch wie man Namen speichert ohne die Unterordner einzubeziehen. Den Rest würde ich als Rookie dann hinbekommen.
Gruß
Ich bin da auch nicht so firm in dieser Art von Scripterei. Wenn ich das aber auf einem Webserver machen müßte und das ganze irgendwie in PHP umsetzen müßte, dann würde ich das hinkriegen und was ich schrieb, wäre da von der Struktur meine Vorgehensweise.
#9
geschrieben 05. Februar 2015 - 21:18
dazu habe ich auch eine Frage: Wie kann man mehrere Ordner erstellen und diese dann in mehreren Unterordnern anlegen lassen?
Das müsste doch ähnlich gehen wie es d4rkn3ss4ev3rin seiner erstellten Batchdatei gemacht hat, nur dass man eben nicht löscht, sondern eine Verzeichnisstruktur in mehreren Ordnern anlegt.
Sagen wir, ich habe die Ordner a, b, c, d und e. Nun möchte ich in diesen Ordnern jeweils die Ordner 1_Rezepte, 2_Zutaten und 3_Personen erstellen lassen. Wie geht das?
Gruß
Willi
#10 _d4rkn3ss4ev3r_
geschrieben 05. Februar 2015 - 21:46
So sollte das dann gehen:
@echo off
cd /d "%~dp0"
for /f "tokens=1" %%i in ('dir /b /a:d') do set ordner=%%i&call :loop
echo Fertig
pause&exit
:loop
mkdir %ordner%/1_Rezepte >nul
mkdir %ordner%/2_Zutaten >nul
mkdir %ordner%/3_Personen >nul
#11
geschrieben 05. Februar 2015 - 22:49
Zitat (d4rkn3ss4ev3r: 05. Februar 2015 - 21:46)
So sollte das dann gehen:
@echo off
cd /d "%~dp0"
for /f "tokens=1" %%i in ('dir /b /a:d') do set ordner=%%i&call :loop
echo Fertig
pause&exit
:loop
mkdir %ordner%/1_Rezepte >nul
mkdir %ordner%/2_Zutaten >nul
mkdir %ordner%/3_Personen >nul
So einfach geht das und ich zerbreche mir den Kopf. Habe mir überlegt, wie das mit cd %ordner% geht, aber da macht er es dann nur 1x in nur einem Ordner. Vielen lieben Dank! Kleine Korrektur: Backslash "\" nehmen, sonst bringt er "Syntaxfehler!". Was macht das >nul eigentlich? Nennt man dieses %ordner% einen Stringarray, da es die ganzen Ordnernamen enthält?
Gruß und herzlichen Dank nochmal
Willi
Dieser Beitrag wurde von Willimandscharo bearbeitet: 05. Februar 2015 - 22:50
#12 _d4rkn3ss4ev3r_
geschrieben 05. Februar 2015 - 23:13
Aber bin auch gerade erst von Montage mit langer Autofahrt wiedergekommen. Denke das ist dann akzeptabel.
">nul" macht nur das es keine Bildschirm-Ausgabe jedes Mal gibt. In dem Fall "Ordner wurde erstellt"
Den letzten Satz versteh ich nicht. %ordner% ist immer der Ordner den das Script gerade bearbeitet.
- ← System Integrity Checksum Tester
- Skript/Web-Programmierung
- Batch - Directorys und files in TXT-Datei und Weiterbearbeitung →