Kopierscript nach Datumsordner und Datumsdatei
Hallo Zusammen.
ich habe leider eine sehr bescheidene Maschine, die mir am Ende des Produktionstages eine Datei erstellt. Diese Kopiere ich mir um 23:55 Uhr auf meinen Server um diese Datei aufzubereiten. Leider klappt das kopieren nicht immer bzw. muss angepasst werden.
Ausgangslage Bild 1 die Ordnerstruktur. Im Ordner befindet sich dann jeweils eine CSV Datei mit gleichen Namen.
Beispiel Ordner 2024_5_8 befindet sich die Datei 2024_5_8.csv .
Daraufhin habe ich mir bereits eine Batch Datei gebaut, die mir die Datei kopiert. Leider gibt es hier 4 Möglichkeiten.
2024_5_1
2024_5_10
2024_10_1
2024_10_10
Hier passe ich dann immer nach Datum die Batch Datei an und kommentiere die falschen Datumsformate aus
Die Batchdatei sieht folgendermaßen aus:
Nach dem Import bereite ich die Daten selbst auf, was auch funktioniert. Wenn das Datum falsch gesetzt ist oder keine Datei kopiert wurde, erhalte ich eine E-Mail aus meinem Importscript.
Hat vielleicht jemand eine Idee, wie ich das voll automatisch lösen könnte, ohne alle 10 bzw. 20 Tage die Datei zu ändern?
Danke.
ich habe leider eine sehr bescheidene Maschine, die mir am Ende des Produktionstages eine Datei erstellt. Diese Kopiere ich mir um 23:55 Uhr auf meinen Server um diese Datei aufzubereiten. Leider klappt das kopieren nicht immer bzw. muss angepasst werden.
Ausgangslage Bild 1 die Ordnerstruktur. Im Ordner befindet sich dann jeweils eine CSV Datei mit gleichen Namen.
Beispiel Ordner 2024_5_8 befindet sich die Datei 2024_5_8.csv .
Daraufhin habe ich mir bereits eine Batch Datei gebaut, die mir die Datei kopiert. Leider gibt es hier 4 Möglichkeiten.
2024_5_1
2024_5_10
2024_10_1
2024_10_10
Hier passe ich dann immer nach Datum die Batch Datei an und kommentiere die falschen Datumsformate aus
Die Batchdatei sieht folgendermaßen aus:
REM Datum 2024_5_1
REM copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~4,1%_%date:~1,1%\%date:~6,4%_%date:~4,1%_%date:~1,1%.csv \\Importserver\import\import.csv /Y
REM copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~4,1%_%date:~1,1%\%date:~6,4%_%date:~4,1%_%date:~1,1%.csv \\Importserver\archive /Y
REM Datum 2024_5_10
copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~4,1%_%date:~0,2%\%date:~6,4%_%date:~4,1%_%date:~0,2%.csv C:\xampp\htdocs\vsg_wesel\import\import.csv /Y
copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~4,1%_%date:~0,2%\%date:~6,4%_%date:~4,1%_%date:~0,2%.csv C:\xampp\htdocs\vsg_wesel\archive /Y
REM Datum 2024_10_1
REM copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~3,2%_%date:~1,1%\%date:~6,4%_%date:~3,2%_%date:~1,1%.csv C:\xampp\htdocs\vsg_wesel\import\import.csv /Y
REM copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~3,2%_%date:~1,1%\%date:~6,4%_%date:~3,2%_%date:~1,1%.csv C:\xampp\htdocs\vsg_wesel\archive /Y
REM Datum 2024_10_13
REM copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~3,2%_%date:~0,2%\%date:~6,4%_%date:~3,2%_%date:~0,2%.csv \\Importserver\import\import.csv /Y
REM copy \\IP Adresse vom Maschine\%date:~6,4%_%date:~3,2%_%date:~0,2%\%date:~6,4%_%date:~3,2%_%date:~0,2%.csv \\Importserver\archive /Y
Nach dem Import bereite ich die Daten selbst auf, was auch funktioniert. Wenn das Datum falsch gesetzt ist oder keine Datei kopiert wurde, erhalte ich eine E-Mail aus meinem Importscript.
Hat vielleicht jemand eine Idee, wie ich das voll automatisch lösen könnte, ohne alle 10 bzw. 20 Tage die Datei zu ändern?
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 61631018218
Url: https://administrator.de/forum/kopierscript-nach-datumsordner-und-datumsdatei-61631018218.html
Ausgedruckt am: 21.01.2025 um 07:01 Uhr
5 Kommentare
Neuester Kommentar
Moin,
als reine Batch z.B. so:
Besser wäre natürlich gleich Powershell statt Batch zu nutzen...
geht aber auch Hybrid:
Gruß Thomas
als reine Batch z.B. so:
@echo off
call :getDate
REM Hier folgt dann der Code zum Kopieren
echo %today%
pause
exit /b 0
REM Funktion zum Ändern des Datums in das Format "yyyy-M-d"
:getDate
for /f "Tokens=* Delims=0" %%A in ("%date:~3,2%") do set today=%date:~-4%-%%~A
for /f "Tokens=* Delims=0" %%A in ("%date:~0,2%") do set today=%today%-%%~A
Besser wäre natürlich gleich Powershell statt Batch zu nutzen...
Get-Date -Format "yyyy-M-d"
geht aber auch Hybrid:
@echo off
for /f %%A in ('powershell Get-Date -Format "yyyy-M-d"') do set today=%%~A
echo %today%
Gruß Thomas
Das freut mich.