Ich habe eine Batchdatei erstellt, die auf dem Taskplaner für das Sage VIP-Abrechnungssystem ausgeführt wird. Das Problem, das ich bekomme, ist das Datum, an dem das Wort zurückgegeben wird date.zip
und nicht das tatsächliche Datum.
Code:
V:
@ECHO OFF
set ldt=%date%
pkzipc -add B:\VIP_Backup_IT\ldt *.pay *.vix
echo ldt
pause
exit
Ich bekomme ldt.zip
und nicht das Datum
echo ldt
wird angezeigtldt
. Um die variablen Inhalte anzuzeigen, die Sie benötigenecho %ldt%
allerdings, wenn Sie nicht brauchenldt
anderswo oder diepkzipc
Kommando läuft bis Mitternacht, es ist einfacher zu vergessenldt
und nur verwendenecho %date%
.ldt
war als literaler Dateiname gedacht. Wenn Sie verwenden möchten%ldt%
Wie auch der Dateiname, siehe sowohl die Antworten von Techie007 als auch von Pauls, wobei letztere komplizierter ist, als es sein muss (siehe mein Kommentar darunter).Antworten:
Mögen
%date%
Um auf Variablen zu verweisen, müssen Sie ihren Namen in Prozentzeichen einschließen:Hinweis: Abhängig von Ihren regionalen Einstellungen Ihr Datumsformat kann Erzeugen Sie eine Zeichenfolge, die als Dateiname ungültig ist.
quelle
Sie können keine Datei oder ein Verzeichnis mit Datum als Namen erstellen oder umbenennen, ohne das Schrägstrichsymbol zu analysieren und zu entfernen
/
Hier ist eine Möglichkeit, ein Datum zu erhalten und es zu analysieren.
quelle
for /f "tokens=1,2,3 delims=/" %%a in ('echo %date%') do ltd=%%c%%b%%a
./
ist also nicht in der regionalen Datumszeichenfolge enthalten%ldt%
wird das gleiche wie enthalten%date%
, z.B2015-09-23
.