fchristian
Goto Top

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:


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.
1

Content-Key: 61631018218

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

Printed on: May 19, 2024 at 21:05 o'clock

Member: TK1987
TK1987 May 08, 2024 updated at 10:02:23 (UTC)
Goto Top
Moin,

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
Member: erikro
erikro May 08, 2024 at 10:06:42 (UTC)
Goto Top
Moin,

warum einfach, wenn es auch kompliziert geht? face-wink Nimm die Powershell.

#ungetestet
$akt_date = get-date -format "yyyy_M_d" # Achtung, das ist Absicht mit den kleinen Ypsilons, dem kleinen D und dem großen M  

copy-item -path "x:\$($akt_date)\$($akt_date).csv" -destination "y:\wohinauchimmer"  

hth

Erik
Member: FChristian
FChristian May 13, 2024 at 06:44:57 (UTC)
Goto Top
Morgen und Danke @TK1987 für deine Vorschlag.
Ich habe nun @erikro Vorschlag in der Powershell angepasst und lasse es gerade parallel laufen.

Werde die Tage berichten.