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:
Führe ich das Ganze aus, erhalte ich zwar eine kopierte Datei, aber anstelle des Datums wird der Ausruck "Enter" angehängt:
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 669665
Url: https://administrator.de/contentid/669665
Ausgedruckt am: 03.12.2024 um 17:12 Uhr
3 Kommentare
Neuester Kommentar
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.
Oder alternativ auch per Powershell wenn es unbedingt noch eine Batch sein soll
Gruß catrell
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"
@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
Oder DOS:
Je nach Sprache vom System:
DEUTSCH:
ENGLISCH:
FRANZÖSISCH:
und dann Datum gleich:
oder halt andersweitig verwenden
also in deinem fall:
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
also in deinem fall:
copy file.html "C:\Public\Test\file_%YYYY%.%MM%.%DD%.html"