Forum: PC-Programmierung windows bug oder was?


von Kartoffel S. (kartoffelsalat)


Lesenswert?

Hallo Ihr

ich will in einer batch verarbeitung eine datumsberechnung machen. ich 
will immer das aktuelle datum vor einem Monat ausgeben. als wen heute 
der 14.08.2007 ist soll 14.07.2007 ausgegeben werden. ich habe folgendes 
skript geschrieben:
1
@echo off
2
3
echo %date%
4
5
set dd=%date:~0,2%
6
set mm=%date:~3,2%
7
set yyyy=%date:~6,4%
8
9
echo %dd%
10
echo %mm%
11
echo %yyyy%
12
set /a mm=mm - 01
13
echo 0%mm%

also tage , monate und jahrzahlen in variablen schreiben und dann von 
der monatsvariable "mm" 1 subtrahieren und alles ausgeben. funktioniert.

AUSNAHME Monate 08 und 09. im august und september wird nach der 
subtraktion von %mm% "-1" anstatt "07 "bzw "08" ausgegeben.

hat da jemand eine Erklärung oder sogar eine abhilfe dafür?

gruss Raphael

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das Problem lässt sich auf
1
set m=08
2
set /a n=m - 01
3
echo %n%

eingrenzen.

Wenn das geändert wird zu
1
set m=8
2
set /a n=m - 01
3
echo %n%

dann funktionierts.

Allem Anschein nach kann CMD.EXE oktal rechnen, und weder 08 noch 09 
sind gültige Oktalzahlen.

von Kartoffel S. (kartoffelsalat)


Lesenswert?

stimmt!

wenn ich
1
@echo off
2
set mm=%date:~3,2%
zu
1
@echo off
2
set mm=%date:~4,1%
ändere wird funktiopniert es.

doof!!!!!

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.