Kopieren via BAT-Datei und Geplanten Task
Folgendes Problem:
Über Nacht läuft ein Prozess der Daten auf ein Laufwerk bereit stellt. Dies geht leider nicht automatisch auf ein anderes da es über Unix läuft.
Jetzt zu meinem Problem:
- Die Daten befinden sich im Quellserver wobei lediglich die Auftragsnr sich verändert. z.b. 5123456_0001_0002
- Ein Auftrag ist komplett wenn die Datei 5123456_0001_0002.nwp vorhanden ist - erst dann dürfen die Dateien kopiert werden
Wie schaffe ich es das mir eine BAT-Datei die z.b. durch einen geplanten Task alle x Sekunden ausgeführt wird die unten angefügte copy.bat erstellt und die Auftragsnr. anhand der *.nwp - Datei an allen nötigen Stellen in der Datei richtig einfügt?
Vielen Dank für die Hilfe
Über Nacht läuft ein Prozess der Daten auf ein Laufwerk bereit stellt. Dies geht leider nicht automatisch auf ein anderes da es über Unix läuft.
Jetzt zu meinem Problem:
- Die Daten befinden sich im Quellserver wobei lediglich die Auftragsnr sich verändert. z.b. 5123456_0001_0002
- Ein Auftrag ist komplett wenn die Datei 5123456_0001_0002.nwp vorhanden ist - erst dann dürfen die Dateien kopiert werden
Wie schaffe ich es das mir eine BAT-Datei die z.b. durch einen geplanten Task alle x Sekunden ausgeführt wird die unten angefügte copy.bat erstellt und die Auftragsnr. anhand der *.nwp - Datei an allen nötigen Stellen in der Datei richtig einfügt?
#################### copy.bat #########################
rem Quellserver
set SRVPATHSOURCE=\\server1\prod\auftrag
rem Zielserver
set SRVPATHDEST=\\server2\prod\Data
robocopy %SRVPATHSOURCE%\auftrag\5123456_0001_0002\ %SRVPATHDEST%\5123456_0001_0002\ *.* /E /ZB
robocopy %SRVPATHSOURCE%\auftrags_cd\konst\ %SRVPATHDEST%\konst\ *.* /E /ZB
robocopy %SRVPATHSOURCE%\auftrags_cd\TRANSAS\ %SRVPATHDEST%\TRANSAS\ *.* /E /ZB
robocopy %SRVPATHSOURCE%\merge\ %SRVPATHDEST%\merge\ 5123456_0001_0002.txt /E /ZB
robocopy %SRVPATHSOURCE%\order\ %SRVPATHDEST%\order\ 5123456_0001_0002.nwp /E /ZB
###################################################
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 71692
Url: https://administrator.de/forum/kopieren-via-bat-datei-und-geplanten-task-71692.html
Ausgedruckt am: 25.04.2025 um 01:04 Uhr
4 Kommentare
Neuester Kommentar
Moin snowhill,
beim besten Willen... kann es sein, dass bei Euch in der Firma noch gewisse Potentiale zur Prozessausgestaltung und zur Ablaufoptimierung gegeben sind?
Es macht auf mich nicht den Eindruck, dass sich dort mit einem Batch große Schneisen in gewucherte Datenverknotungen schlagen lassen.
Dennoch würde ich auch dabei natürlich trotzdem helfen, aber ich hab es erstens nicht verstanden und kann zweitens auch nicht nachvollziehen, was der Robocopy-Batch da treibt.
Bitte nochmal langsam:
Sorry, ich habe Deine Beschreibung wirklich nicht ausreichend zum Drauflostippseln verstanden.
Grüße
Biber
beim besten Willen... kann es sein, dass bei Euch in der Firma noch gewisse Potentiale zur Prozessausgestaltung und zur Ablaufoptimierung gegeben sind?
Es macht auf mich nicht den Eindruck, dass sich dort mit einem Batch große Schneisen in gewucherte Datenverknotungen schlagen lassen.
Dennoch würde ich auch dabei natürlich trotzdem helfen, aber ich hab es erstens nicht verstanden und kann zweitens auch nicht nachvollziehen, was der Robocopy-Batch da treibt.
Bitte nochmal langsam:
- die Daten liegen JETZT auf einer Windows-Maschin'?
- in einer Verzeichnisstruktur "\\server1\prod\auftrag" ?
- darunter geht es mit den Verzeichnissen "auftrag\5123456_0001_0002\", "auftrags_Cd" (mit 2 Subdirs), "merge" weiter?
- wo liegt die *.nwp??
- bleiben die Original-Dateien zusätzlich auf dem Quellserver, werden die gelöscht, archiviert, umbenannt?
- was soll wie zu was zusammengesetzt werden, wenn die *.nwp-Datei da ist?
Sorry, ich habe Deine Beschreibung wirklich nicht ausreichend zum Drauflostippseln verstanden.
Grüße
Biber
Also gut, snowhill,
versuchen wir uns mal heranzutasten...
Wenn es wirklich so ist, dass der Name der *.nwp-Datei wirklich die einzige Variable in dem ganzen *nach-Worten-ring*....Ablauf ist, dann sehe ich eigentlich nur noch zwei Randbedingungen, die ich im Auge behalten würde:
Also bleiben doch nur
Wenn wir den als Basis nehmen (und davon ausgehen, den starten wir alle x Sekunden über den Taskplaner:
So wäre der erste Wurf.
Aber sinnvoller als ein einsamer Batch wäre es eventuell, mit deinem Cheffe mal ein Becks zu trinken...
Gruß
Biber
versuchen wir uns mal heranzutasten...
Wenn es wirklich so ist, dass der Name der *.nwp-Datei wirklich die einzige Variable in dem ganzen *nach-Worten-ring*....Ablauf ist, dann sehe ich eigentlich nur noch zwei Randbedingungen, die ich im Auge behalten würde:
- dieses angedeutete "alle x Sekunden über Taskmanager starten"... ist zwar das geringste Problem, aber: ist es nötig und sinnvoll? Ist eine *.nwp-Datei (mit allem, was da dranhängt) auch ein CD-Vervielfältigungsauftrag, der sofort weitere Prozessschritte auflöst? Oder wird eher am Ende eines 6-Stundenzeitraums oder so alles aufgelaufene eingesammelt und dann weiterverarbeitet?
- und das zweite - irgendwie sollte man/frau ja sicherstellen, dass die Datenklumpen, die der Robocopy schon einmal erfolgreich umgeschaufelt hat beim nächsten Programmstart nicht noch einmal angefasst werden. Ich würde also den Robo-Krams noch um eine Zeile erweitern, die den Namen der *.nwp-Datei an eine Logdatei dranhängt. Und kopieren eben nur, wenn die auf dem Server "gefundene" *.nwp-Datei dort nicht erwähnt wird.
Also bleiben doch nur
- das Finden einer *.nwp-Datei auf \\server1\prod\auftrag
- den Namen davon (ohne .nwp) als Variable weiterverwenden im bisherigen Robobatch.
Wenn wir den als Basis nehmen (und davon ausgehen, den starten wir alle x Sekunden über den Taskplaner:
::---snipp nwpSauger.bat
@echo off & setlocal
#################### copy.bat #########################
rem Quellserver
set SRVPATHSOURCE=\\server1\prod\auftrag
rem Zielserver
set SRVPATHDEST=\\server2\prod\Data
for /f "delims=" %%i in ('dir %SRVPATHSOURCE%\*.nwp /b /s') do call :ProcessNWP "%%~ni"
goto :eof
:ProcessNWP
find "%~1" \\irgeneinShare\AllekopiertenNWPs.log >nul && goto :eof
robocopy %SRVPATHSOURCE%\auftrag\%~1\ %SRVPATHDEST%\%~1\ *.* /E /ZB
robocopy %SRVPATHSOURCE%\auftrags_cd\konst\ %SRVPATHDEST%\konst\ *.* /E /ZB
robocopy %SRVPATHSOURCE%\auftrags_cd\TRANSAS\ %SRVPATHDEST%\TRANSAS\ *.* /E /ZB
robocopy %SRVPATHSOURCE%\merge\ %SRVPATHDEST%\merge\ %~1.txt /E /ZB
robocopy %SRVPATHSOURCE%\order\ %SRVPATHDEST%\order\ %~1.nwp /E /ZB
###################################################
if Not Errorlevel 1 echo %~1>>\\irgeneinShare\AllekopiertenNWPs.log
So wäre der erste Wurf.
Aber sinnvoller als ein einsamer Batch wäre es eventuell, mit deinem Cheffe mal ein Becks zu trinken...
Gruß
Biber