Hallo Honko,
if not exist Beispiel md Beispiel
move Test*.* Beispiel
nur mal so, quasi zu deiner Kenntnis, bei wichtigen Dateien würde ich so vorgehen aus Sicherheitsgründen.
if not exist Beispiel md Beispiel
xcopy Test*.* Beispiel
del Test*.*
Denn wenn bei, mitten, in deinem „Move“ der PC zusammenbricht o.ä. ist erstmal unklar ob es keine Dateiinhalte betroffen hat im worst case.
Meine Variante ist da einen Tick sicherer.
Ggfs. noch nach jeder Codezeile sone Codezeile einfügen
If Errorlevel… Goto x
Kann auch übertrieben sein, weiß grad nicht, lang her mit meinem Dos 3.3
Was nicht schlecht ist alle Befehle so zu schreiben:
if not exist Beispiel md Beispiel >> C:\Reinhard\Kopier.log
xcopy Test*.* Beispiel >> C:\Reinhard\Kopier.log
del Test*.* >> C:\Reinhard\Kopier.log
Denn so eine Log-Datei ist schnell durchzucrollen und dir können Fehlermeldungen drinstehen die dir sonst entgangen wären. Das Move nicht klappte da die Datei grad von einem Programm im Gebrauch ist o.ä.
So, immerhin jetzt schon was zu deiner Batch
Du willst von einem Oberordner bis „runter“ in den dritten Ordner-Level. Mein erster Ansatz dazu wäre daß ich das mit drei For-Schleifen löse.
Rein prinzipiell so For-Schleifen
For /f „delims=- tokens=1-4“ %%i in (‚dir /b /a-d /s *-JJMM.xls‘) do echo %%i
Das mit Echo hinten kannste ja benutzen um zu prüfen ob der vordere Teil der For korrekt funktioniert. Mal angenommen die Batch stünde im Oberordner.
Um das Problem zu lösen muß das dann aber so aussehen:
For …) do Call Batch2.bat %%i
In Batch2.bat kannste dann über den mitgegebenen Parameter %%i auf die jeweiligen Unterordner erster Stufe zugreifen und mit der dritten For-Schleife bearbeiten, die dann in Batch3.bat steht.
Vielleicht mit einer For-Next Schleife? Aber wie
navigiere ich in die jeweiligen Unterordner, die ja alle
anders benannt sind?
Andere Namen sind weniger das Problem. Wichtiger ist ob die Ordnernamen eine Dateierweiterung haben. Wenn nicht ist besser, dann kann man nach *. suchen.
Ich kenne die neumodischen Dosbehle nicht so. Vielleicht gibt es mir unbekannte Befehle wie
If IsDir …
If filelength=0…
Zur Not kann man noch nach /nul fahnden. Ordner haben/hatten diesen Namen in sich, vllt. als unsichtbare Datei, k.A. Dateien nicht.
Gruß
Reinhard