coldzero89
Goto Top

Per Batch das Date -1 rechnen

Moin,

für die Überschrift is mir nichts bessere eingefallen.

Ich wollt mir für nen FTP Script nen String bauen der mir das aktuelle Datum ausgibt und den Tag - 1 Rechnet.

Mein Script sieht so aus:

@echo on

FOR /f "tokens=1-3 delims=. " %%G IN ('date /t') DO set /a Z=%%G-1  
FOR /f "tokens=1-3 delims=. " %%J IN ('date /t') DO set datestring=%%L_%%K_%Z%  

echo %datestring%
pause

Das funktioniert soweit wunderhübsch und schön, alles in einer Forschleife lief nicht so schön, da wollte er mir Z nicht berechnen.

Meine erste Frage ist nun, wo lag mein Fehler?

Vorher sah es so aus:
FOR /f "tokens=1-3 delims=. " %%G IN ('date /t') DO (  

set /a Z=%%G-1
set datestring=%%I_%%H_%Z%
)

echo %datestring%
pause

Und meine zweite: Gibt es einen eleganteren Weg als die Lösung die von mir nun Funktioniert?
Ich mein Elegant an sich isses, es wird alles einzelnd berechnet, aber das muss doch auch in EINER schleife gehen oder nicht?

Gruß der Zero

Content-ID: 194301

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

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

Nr60730
Nr60730 15.11.2012 aktualisiert um 17:28:15 Uhr
Goto Top
moin,

die erste Zeile im ersten Script sieht ja schon mal sehr gut aus face-wink

Nur stelle ich mir grad die Frage - was passiert am Monatsersten?

  • entweder das Datum um 23.58 abfragen und einen Tag später benutzen...
  • oder einen 3zeiler mit nem vbs verwursten

echo on
echo Wscript.Echo Date() - 1>%temp%\yesterday.vbs
for /f "tokens=1-3 delims=." %%a in ('cscript /nologo %temp%\yesterday.vbs') do echo %%a_%%b_%%c  
ColdZero89
ColdZero89 16.11.2012 aktualisiert um 15:06:23 Uhr
Goto Top
Moin,

daran hab ich nun überhaupt nicht gedacht....

Wenn ich richtig sehe hast du nur eine Zeile VBS, schiebst diese in die yesterday.vbs

Nur was passiert in der Schleife?

Ah ich seh grad Date -1 face-smile gar nicht gesehen.

Gut heißt zweite For-Schleife durch das kleine VBS Gewurste ersetzen, ich danke dir.

Gruß Zero

EDIT: Beim ausführen deines Scriptes gibt es einen VBS Syntaxfehler. Zwischen Date() und dem -1 darf kein Leerzeichen sein sonst gibts mecker ^-^

Aber ich danke dir. geht sauber.
Juckt mich dennoch wie das in Batch so funktionieren würd.

Thema is damit aber Gelöst - sogar einen Unwissenden Fehler gleich mit behoben.
bastla
bastla 16.11.2012 um 16:49:13 Uhr
Goto Top
Hallo ColdZero89!
Juckt mich dennoch wie das in Batch so funktionieren würd.
Zur Abschreckung face-wink: Morgiges Datum in Batchdatei bestimmen ...

Grüße
bastla