Forum: PC-Programmierung mit datum rechnen in einem batch skript


von Kartoffel S. (kartoffelsalat)


Lesenswert?

Hallo zusammen

Ich habe wiedermal ein problemchen bei einer batch verarbeitung.

mit dem "set" befehl zerlege ich das datum in einzelne variablen:

set dd=%date:~0,2%
set mm=%date:~3,2%
set yyyy=%date:~6,4%

so gibt "%dd%" den tag also "09" zurück, analog "mm" und "yyyy"

nun möchte ich von "mm" "1" subtrahieren, also quasi einen Monat zurück:
ich mache das so:

set /a mm=mm - 1

ergebniss ist allerdings nicht 7 sondern -1
also irgendwie klappt da was mit der Umgebungsvariable nicht.
weiss jemand wiso?

danke und Gruss
Raphael

von Uhu U. (uhu)


Lesenswert?

Sowas kann Windows command.com / cmd.exe nicht.

Mit dem Windows Script Host in VBscript oder JScript kann man sowas 
machen - noch viel komfortabler.

von Uhu U. (uhu)


Lesenswert?

Windows command.com / cmd.exe kann man sowas aber beibringen: Besorge 
die eine DOS-Portierung des *nix-Programmes expr.

expr kann Ausdrücke berechnen. Das funktioniert unter 
command.com/cmd.exe aber nur mit ziemlich trickreichen Klimmzügen und 
wahrscheinlich auch nur unter Mithilfe weiterer Tools aus de *nix-Ecke.

Ich habe sowas früher mal gemacht - es war kein Vergnügen...

von Alex (Gast)


Lesenswert?

Doch das geht.

wenn du zum beispiel den Vorangegangen Tag haben willst dann mach es 
über eine Variable

set /a vortag=%dd%-1

Dann steht in der Variablen %vortag% zum Beispiel 5 wenn gerade der 6. 
ist.

Ich bin grad an sowas dran, denn es wird tricky wenn schon der erste 
eines Monats ist... Da muss man mit viel if arbeiten...

von doofi (Gast)


Angehängte Dateien:

Lesenswert?

Eure Frickelei funktioniert dann nur bei deutschen 
Regionaleinstellungen.

Toll :-)

Anbei ein ordentliches DATE...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.