WinFuture-Forum.de: Löschen: Mehrere Unterordner von mehreren Ordnern löschen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Löschen: Mehrere Unterordner von mehreren Ordnern löschen Wie man alle Unterordner von mehreren Ordnern löscht


#1 Mitglied ist offline   Iverson3 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 27. Januar 15
  • Reputation: 0

geschrieben 27. Januar 2015 - 21:40

Hallo zusammen,

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 [email protected]

Wenn es Rückfragen gibt, einfach kurz nachfragen. Diese Lösung ist mir extrem wichtig!
0

Anzeige



#2 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 27. Januar 2015 - 21:47

Einfach durchiterieren mit for /D %n in (XXX), wobei XXX eine Liste der Ordner ist (oder * für alle).

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. :D Ist ein öffentliches Forum - jeder profitiert von diesem Ansatz, nicht nur Du selber. :)

Dieser Beitrag wurde von RalphS bearbeitet: 27. Januar 2015 - 21:48

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#3 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 27. Januar 2015 - 21:48

Also zum theoretischen Ablauf: Ich würde alle Ordner in V:\Bauvorhaben auslesen und die Namen speichern ohne die Unterordner einzubeziehen. Dann alles in Ordner V:\Bauvorhaben löschen und dann anhand der gespeicherten Liste wieder alle Ordner mit den gespeicherten Namen in V:\Bauvorhaben erstellen.

(oder so wie RalphS)

Dieser Beitrag wurde von Holger_N bearbeitet: 27. Januar 2015 - 21:49

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#4 Mitglied ist offline   Iverson3 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 27. Januar 15
  • Reputation: 0

geschrieben 27. Januar 2015 - 21:52

ok, wie lösche ich die Unterordner nur, ohne sie gleich umzubenennen? Ich möchte quasi v:\bauvorhaben\12345_abba und v:\bauvorhaben\12346_abu und v:\bauvorhaben\12347_abz beibehalten, ABER DEREN UNTERORDNER ALLE LÖSCHEN. Wie mache ich nur das?
0

#5 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 27. Januar 2015 - 21:55

Indem Du dem Script den oder die Ordnernamen in Form von Parametern mitgibst und diese dann im Script auswertest. :)
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#6 Mitglied ist offline   Iverson3 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 27. Januar 15
  • Reputation: 0

geschrieben 27. Januar 2015 - 21:59

sind aber über eintausend. 12345_abba und 12346_abu und 12347_abz waren nur 3 von ca. 1900 mit dieser Struktur. Das ist mein Problem. Und deswegen bin ich hier, sonst könnte ich es auch manuell erledigen.

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?

Beitrag anzeigenZitat (Holger_N: 27. Januar 2015 - 21:48)

Also zum theoretischen Ablauf: Ich würde alle Ordner in V:\Bauvorhaben auslesen und die Namen speichern ohne die Unterordner einzubeziehen. Dann alles in Ordner V:\Bauvorhaben löschen und dann anhand der gespeicherten Liste wieder alle Ordner mit den gespeicherten Namen in V:\Bauvorhaben erstellen.

(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ß
0

#7 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 29. Januar 2015 - 23:47

Folgender Code löscht alle Unterordner samt Inhalt die nach 12346_Kunde kommen. Also genau das was du willst.
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!)
0

#8 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 30. Januar 2015 - 14:33

Beitrag anzeigenZitat (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.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#9 Mitglied ist offline   Willimandscharo 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 05. Februar 15
  • Reputation: 0

geschrieben 05. Februar 2015 - 21:18

Hallo,

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
0

#10 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 05. Februar 2015 - 21:46

@Willimandscharo
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

0

#11 Mitglied ist offline   Willimandscharo 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 05. Februar 15
  • Reputation: 0

geschrieben 05. Februar 2015 - 22:49

Beitrag anzeigenZitat (d4rkn3ss4ev3r: 05. Februar 2015 - 21:46)

@Willimandscharo
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

0

#12 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 05. Februar 2015 - 23:13

Ah stimmt. \ statt /
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.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0