gasren1
Goto Top

RoboCopy - Move mit delay

Hallo zusammen,

vielleicht kann mir von euch jemand bei meinem Problemchen helfen!?

und zwar habe ich in einem Ordner eine Menge File die wie folgt aussehen könnten:

20080715122500_00000001.xml
20080715122500_00000002.xml
20080715122501_00000003.xml
...

Diese müsste ich nun eines nach dem anderen (Reihenfolge ist sehr wichtig) in einen anderen Ordner verschieben.
-> am besten mit einer Sekunden dazwischen.

Hindergrund ist folgender. Der ZielOrdner wo sie hinkommen wird von einem Biztalk überwacht und aus den XML Files werden FlatFiles gemappt bzw. erstellt.

Verschiebe oder kopiere ich nun alle auf einmal in den Ordner was ja prinzipiell Möglich ist, greift sich der BT 20er Pakete und erledigt seine Arbeit (mappen und weitergeben an MQ Server).
--> daher ist die Reihenfolge entscheident, da bei unserem Auftraggeber die Reihenfolge entscheident ist.
(Wenn er zum Beispiel normalerweise die Nachricht "k" erwartet, eine "L" bekommt und dann erst die "k" nimmt er sie nicht mehr an.
Bis dato haben wir die Files einzeln in den entsprechenden Ordner gezogen, da das Projekt nun aber beginnt zu laufen werden es immer mehr und mehr files...

WICHTIG wäre es nun also, wenn man ein File nach dem anderen verschieben lassen könnte...

Es in einer Schleife ablaufen zu lassen ist mir in den Sinn gekommen, aber wie ich immer genau 1es bzw. das jeweilige erste abgreife ist mir nicht ganz klar...


Besten Dank im voraus

René


PS.: Sollte nochwas unklar sein einfach fragen...

Content-Key: 92144

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

Printed on: April 19, 2024 at 07:04 o'clock

Member: GasRen1
GasRen1 Jul 16, 2008 at 08:00:32 (UTC)
Goto Top
Hallo,

könnte man in einer schleife vielleicht auf den Counter im Filenamen abfragen?

Wenn ??????_0000001.xml ist mov...

das in einer Schleife ablaufen lassen?


Danke
rené
Member: Biber
Biber Jul 16, 2008 at 09:20:15 (UTC)
Goto Top
Moin Gasren1,

willkommen im Forum.

Nachfragen:
  • die Sortierung ist mir nicht ganz klar - wird die vorgegeben
(ausschliesslich) durch die letzten 8 Stellen des Namens "_000000x"??
  • und handelt es sich um eine flache Struktur (=ein verzeichnis) oder auch mehrere Unterordner?

Grüße
Biber
Member: GasRen1
GasRen1 Jul 16, 2008 at 15:33:38 (UTC)
Goto Top
Hallo Biber,

danke erstmal für die schnelle Reaktion!

Die Sortierung bzw. die Files Werden wie oben beschrieben mit Datums-, Zeit-Stempel bzw. Counter generiert.

--> prinzipiell hast du also mit Deiner Annhame schon recht! (die letzten 8 stellen)

Nur ein Verzeichnis...


Danke und lg
René
Member: Biber
Biber Jul 16, 2008 at 17:10:07 (UTC)
Goto Top
Moin GasRen1,

da ja eigentlich der automatisch generierte XML-Dateiname abhängig von ANSI-Datum/Uhrzeit in den nächsten knapp 8000 Jahren einer aufsteigenden Sortierung entspricht...
Dann reicht die Sortierung "nach Name" des DIR-Befehls.

Also wäre der von Dir zu leistende proof-of-concept an Deinem CMD-Prompt:
for /f %i in ('dir /b /on Q:\uelle\*.xml') do @(echo copy Q:\uelle\%~i Z:\iel\) & (ping -n 2 localhost>nul)  
Ausprobieren, Pfade anpassen, "echo" vor dem COPY rausnehmen, abfeuern.

Grüße
Biber
Member: GasRen1
GasRen1 Jul 16, 2008 at 20:37:40 (UTC)
Goto Top
Hallo Biber,

danke für Deine Lösung, allerdings habe ich noch eine kleine Frage diesbezüglich.

Habe die Pfade nun angepasst (Test auf meiner Maschine) in eine bat Datei gepackt und ausgeführt!
-->
for /f %i in ('dir /b /on c:\alt\*.xml') do @(copy c:\alt\%~i c:\neu\) & (ping -n 2 localhost>nul)

Leider ist nix passiert!
Fehler in der Eingabeaufforderung:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters ist ungültig: %~i c:\neu\) & (ping -n 2 localhost>nul)

Geben sie CALL /? oder For /? ein, um heruaszufinden, welche Formate gültig sind! Syntaxfehler!


Danke für Deine Hilfe


lg
René
Member: GasRen1
GasRen1 Jul 16, 2008 at 21:53:59 (UTC)
Goto Top
Hallo Biber,

hab nun nochmal drüber geschaut und den Fehler auch gefunden!

Es müsste %%i bzw %%~1 eingegeben werden.
-> in der Hilfe "for /?" war es ersichtlich.


Danke und lg
René