el-duderino
Goto Top

Probleme mit Datei-Kopie per Windows cmd mit angehängtem Datum und Zeitstempel

Liebe Community,

ich versuche hier gerade unter Win 10 eine "ganz simple" Kopie einer Datei mit angehängtem Datum + Uhrzeit per cmd anzufertigen. Die Datei soll schlicht und ergreifend lokal in einen anderen Ordner kopiert werden.

Was ich anwende ist folgendes kleines Batch-Skript:

@echo off
for /f %%a in ('date.exe +%%d.%%m.%%Y') do set dat=%%a			      
copy file.html "C:\Public\Test\file_%dat%.html"  

Führe ich das Ganze aus, erhalte ich zwar eine kopierte Datei, aber anstelle des Datums wird der Ausruck "Enter" angehängt:

file_Enter.html

Ich verstehe nicht so ganz woher das rührt. Wird hier scheinbar irgendwo ein Zeilensprung interpretiert und
"eingesetzt" anstelle des Datums? Wie bekommt man das gefixt? Habe schon einiges versucht, aber es will einfach nicht funktionieren.

Hoffe, ihr wisst an der Stelle weiter und freue mich auf eure Hilfe.

Beste Grüße

Content-ID: 669665

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

Ausgedruckt am: 03.12.2024 um 17:12 Uhr

150940
Lösung 150940 21.11.2024 aktualisiert um 10:21:34 Uhr
Goto Top
Moin.
Die "date" Funktion in der CMD unterstützt das angeben von Formatierungsanweisungen wie in der Bash unter Linux nicht.
Wenn du externe Tools benutzt die gleich heißen wie eine CMD integrierte Funktion wie "date" dann solltest du den komletten Pfad zu ihr angeben sonst benutzt die CMD unter Umständen nicht deine gewünschte EXE.
Aber wozu externe Tools für das Datum nehmen ? "Local unabhängig" bekommst du das Datum jederzeit per WMI.
@echo off &setlocal ENABLEDELAYEDEXPANSION
for /f %%a in ('wmic path win32_Localtime get Year^,Month^,Day^,Hour^,Minute^,Second /value ^| findstr .') do set /a %%a  
for %%a in (month day hour minute second) do set "tmp=0!%%a!" &set "%%a=!tmp:~-2!"  
set "timestamp=%Day%.%Month%.%Year%"  
copy file.html "C:\Public\Test\file_%timestamp%.html"  
Oder alternativ auch per Powershell wenn es unbedingt noch eine Batch sein soll
@echo off
for /f "delims=" %%a in ('powershell -EP Bypass -C "get-date -f dd.MM.yyyy"') do set "timestamp=%%a"  
echo %timestamp%

Gruß catrell
ThePinky777
ThePinky777 21.11.2024 aktualisiert um 10:30:31 Uhr
Goto Top
Oder DOS:

Je nach Sprache vom System:

DEUTSCH:

set MM=%DATE:~3,2%
set DD=%DATE:~0,2%
set YYYY=%DATE:~6,4%

set HH=%TIME:~0,2%
set NN=%TIME:~3,2%


ENGLISCH:

set MM=%DATE:~4,2%
set DD=%DATE:~7,2%
set YYYY=%DATE:~10,4%

FRANZÖSISCH:

set DD=%DATE:~5,2%
set MM=%DATE:~8,2%
set YYYY=%DATE:~11,4%

und dann Datum gleich:

echo %YYYY%.%MM%.%DD%

oder halt andersweitig verwenden face-smile

also in deinem fall:

copy file.html "C:\Public\Test\file_%YYYY%.%MM%.%DD%.html"    
El-Duderino
El-Duderino 21.11.2024 aktualisiert um 10:39:14 Uhr
Goto Top
@150940:
Wahnsinn, es funktioniert! Ich danke dir vielmals! Absolut top face-smile!

Hatte versucht die date.exe mit ins gleiche Verzeichnis zu packen, aber damit kam er irgendwie auch nicht zurecht.

@ThePinky777:
Auch dir besten Dank für die schnelle Hilfe, werde ich auch gleich mal ausprobieren.