thomasgeisler
Goto Top

Batch: for Schleife d auf mehrere Unterverzeichnisse

Hallo und Hola aus Spanien.
Nach dreitägiger Recherche gebe ich fast auf. Ich hoffe das mir jemand weiterhelfen kann um folgendes Szenario zu lösen.

Screenshot der Verzeichnisstruktur.
screenshot 2021-01-03 122128
Kunden werden grob in drei Sprachen eingeteilt. Innerhalb dieser Ordner liegen Ordner mit den Namen von A bis Z.
Dort befinden sich die Kundenordner mit Namen des Kunden und einer einheitlichen Ordnerstruktur.
Beispiel für Kunde "a2, cliente": \Clientes\Espanol\A\a2,cliente

In dem Ordner \Clientes\Espanol\A\a2,cliente\Information\Facturas müssen jährlich neue Ordnerstrukturen für das aktuelle Jahr angelegt werden.
Und bestimmte abgelaufene Jahrgänge gelöscht werden

Dies habe ich bisher mit
for /d %%a in (*) do md "%%a\Informacion\Facturas\2021\1T\Gastos\Banco"  
etc gelöst. Woebei dies Jahreszahl automatisch durch eine Variable gesetzt wurde.

Nun hat der Kunde jedoch, wie oben beschrieben, die Kunden in drei Sprachen und alphabetische Hauptordner eingeteilt.
Somit komme ich mit der einfachen for Schleife nicht mehr weiter.

Ich suche eine Möglichkeit den Batch im "Sprachordner" z.B. \Espanol zu starten um dann alle Hauptordner A-Z nach Kundennamen zu durchsuchen um dann dort die neue jährlichen Ordner anzulegen.

Vorab schon mal ein Dankeschön für diejenigen die mir behilflich sind.

Content-Key: 637201

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

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

Member: rubberman
Solution rubberman Jan 03, 2021 at 12:18:01 (UTC)
Goto Top
Zitat von @ThomasGeisler:
Ich suche eine Möglichkeit den Batch im "Sprachordner" z.B. \Espanol zu starten um dann alle Hauptordner A-Z nach Kundennamen zu durchsuchen um dann dort die neue jährlichen Ordner anzulegen.

Macht es nicht mehr Sinn im "Clientes" Verzeichnis zu starten und alles auf einmal runter zu bügeln? Z.B. so ...
for /d %%i in (*) do (
 for /d %%j in ("%%~i\*") do (  
  for /d %%k in ("%%~j\*") do md "%%~k\Informacion\Facturas\2021\1T\Gastos\Banco"  
 )
)
Steffen
Member: ThomasGeisler
ThomasGeisler Jan 03, 2021 at 12:44:38 (UTC)
Goto Top
Hallo Steffen. SUPER face-smile Und VIELEN Dank.
Da die Unterverzeichnisse je nach Sprache andere Bezeichnungen haben, muss es im "Sprachenordner" gestartet werden.
Beziehungsweise sind es je Sprache eine andere Batch. Ich habe es wie folgt angepasst:
for /d %%i in (*) do (
 for /d %%j in ("%%~i\*") do md "%%~j\Informacion\Facturas\2021\1T\Gastos\Banco"  
)
und es funktioniert bestens. Muchas Gracias.
Hatte schon ähliches probiert. Aber immer fehlerhaft.

Noch eine Frage zur DO Anweisung. Kann ich dort mehrere Anweisungen mach. In dem Fall mehrere Ordner erstellen. Oder spielt es keine Rolle wenn ich 40 mal diese geschachtelte for Schleife verwende?
Member: rubberman
Solution rubberman Jan 03, 2021 updated at 16:42:05 (UTC)
Goto Top
Zitat von @ThomasGeisler:
Noch eine Frage zur DO Anweisung. Kann ich dort mehrere Anweisungen mach. In dem Fall mehrere Ordner erstellen. Oder spielt es keine Rolle wenn ich 40 mal diese geschachtelte for Schleife verwende?

Natürlich kannst du %%j weiter nutzen. Leg mit einem Klammernpaar einen weiteren Block an und schreibe so viele MDs rein wie du brauchst ...
for /d %%i in (*) do (
 for /d %%j in ("%%~i\*") do (  
    md "%%~j\Informacion\Facturas\2021\1T\Gastos\Banco"  
    md "%%~j\whatever path here"  
  )
)
Steffen
Member: ThomasGeisler
ThomasGeisler Jan 04, 2021 at 09:44:59 (UTC)
Goto Top
Vielen Dank. Werde es so anpassen. Wünsche Dir viel Erfolg und Gesundheit für 2021.