So erstellen Sie eine Batchdatei, die als Datum gespeichert werden soll


0

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


Wenn Sie sich nicht vertippt haben, echo ldt wird angezeigt ldt. Um die variablen Inhalte anzuzeigen, die Sie benötigen echo %ldt%allerdings, wenn Sie nicht brauchen ldt anderswo oder die pkzipc Kommando läuft bis Mitternacht, es ist einfacher zu vergessen ldt und nur verwenden echo %date%.
AFH

Ich dachte deine zweite Verwendung von 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).
AFH

Antworten:


0

Mögen %date%Um auf Variablen zu verweisen, müssen Sie ihren Namen in Prozentzeichen einschließen:

V:
@ECHO OFF
set ldt=%date%
pkzipc -add B:\VIP_Backup_IT\%ldt% *.pay *.vix
echo %ldt%
pause
exit

Hinweis: Abhängig von Ihren regionalen Einstellungen Ihr Datumsformat kann Erzeugen Sie eine Zeichenfolge, die als Dateiname ungültig ist.


0

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.

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

echo %YYYY%%MM%%DD%-%HH%%Min%
pkzipc -add B:\VIP_Backup_IT\%YYYY%%MM%%DD%-%HH%%Min% *.pay *.vix

pause
exit

Dies ist unnötig kompliziert - das gleiche Ergebnis wird mit erreicht for /f "tokens=1,2,3 delims=/" %%a in ('echo %date%') do ltd=%%c%%b%%a.
AFH

Beachten Sie, dass wenn / ist also nicht in der regionalen Datumszeichenfolge enthalten %ldt% wird das gleiche wie enthalten %date%, z.B 2015-09-23.
AFH

@AFH Ich habe einen einfacheren Weg gefunden, jeden abzudecken Fall das ein kürzeres Zeug aber erhöhen viele Fragen .
Paul
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.