Rechnen im Batchscript (mit set /a) folgender Fehler erscheint->

Mitglied: eisdiele

eisdiele (Level 1) - Jetzt verbinden

29.08.2006, aktualisiert 10:28 Uhr, 7521 Aufrufe, 7 Kommentare

[Edit] Hm, ich setz es mal auf "gelöst"... Biber, 2.9.2006 [/Edit]

Hallo,

in den Zeilen die mit @set beginnen, kommt folgender Fehler:

Invalid number. Numeric constants are either decimal (17), hexadecimal (0x11), or octal (021).

Ich hab jetzt schon mit google gesucht, allerdings nichts gefunden an was das liegen könnte. auch set /? hat mir nicht geholfen... in myjahr steht 2006 in mymonat 08 und in mytag 29.

@echo off

REM Datum auslesen
@for /F "tokens=1,2,3 delims=." %%a in ('date /T' ) do @set MYMONAT=%%b
@for /F "tokens=1,2,3 delims=." %%a in ('date /T' ) do @set MYJAHR=%%c
@for /F "tokens=1,2,3 delims=." %%a in ('date /T' ) do @set MYTAG=%%a
@for /F "tokens=1,2,3 " %%a in ('@echo %MYJAHR%') do @set MYJAHR=%%a

echo %myjahr%%mymonat%%mytag%

IF MYMONAT LEQ 3 (
@set /a MYMONAT = %MYMONAT% + 9
@set /a MYJAHR = %MYJAHR% - 1
) else (
@set /a MYMONAT = %MYMONAT% - 3
)
Mitglied: hoschen
29.08.2006 um 09:15 Uhr
bei der Berechnung dürfen die Zahlen nicht die "führende" Null haben:

Falsch: set /a MYMONAT = 08 +9

Richtig: set /a MYMONAT = 8 + 9
Bitte warten ..
Mitglied: eisdiele
29.08.2006 um 09:24 Uhr
das Problem ist aber, dass ich die führende null später für robocopy brauche, da robocopy das datum bei einem atribut als YYYYMMDD haben will...
Bitte warten ..
Mitglied: hoschen
29.08.2006 um 09:32 Uhr
dann doch das Ergebnis "MYMONAT" prüfen, wenn 1stellig dann eine 0 davor, wenn zweistellig dann keine 0 davor.
Bitte warten ..
Mitglied: miniversum
29.08.2006 um 09:43 Uhr
Das Problem liegt nicht an der führenden Null sondern daran das du mit der For-Schleife einen Textstring zerlegst. In den Variablen steht also der Text "08" nicht die Zahl.
Darum geht die Rechnung mit set /a schief, weil du ja nicht zu einem Text eine Zahl addieren oder Subtrahieren kannst.

miniversum
Bitte warten ..
Mitglied: eisdiele
29.08.2006 um 09:45 Uhr
wie ich die 0 vor der 8 löschen kann weiß ich, allerdings nicht, wie ich sie wieder dort hinbekomme!?
Bitte warten ..
Mitglied: eisdiele
29.08.2006 um 09:56 Uhr
mit: set /a MYMONAT = %MYMONAT:~1% - 3

funktioniert die rechnung aber wunderbar, jetzt muss nur die 0 wieder vor die Ziffer kommen, dann sollte mein script endlich funktionieren...
Bitte warten ..
Mitglied: Biber
29.08.2006 um 10:28 Uhr
Moin eisdiele,

zum Beispiel so ändern:

HTH Biber
Siehe auch mein Batch-Tutorial III (Umgang mit Datums- und Zeitvariablen im Batch..)
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Ein Weg weg von Microsoft. Wie würde man es angehen? Lasst uns doch etwas spinnen
it-fraggleVor 1 TagAllgemeinOff Topic48 Kommentare

Guten Morgen Kollegen, es treibt mich schon seit einigen Jahren um, dass es sinnvoll wäre langsam einen Weg weg von Microsoftprodukten zu finden. Mir ...

Batch & Shell
Wieso funktioniert das nicht?
gelöst Hundy132Vor 1 TagFrageBatch & Shell10 Kommentare

Hallo Freunde, kann mir irgendjemand sagen wieso meine Batch datei nicht funktioniert? So sieht Sie aus: Hier soll ein ein vorgegebenes Passwort Eingegeben werden ...

Server-Hardware
HPE ProLiant MicroServer Gen10 Plus - Wo wird das OS installiert?
mayho33Vor 1 TagFrageServer-Hardware13 Kommentare

Hallo @ All, Ich liebäugle mit einem neuem Server (siehe Überschrift). Mein alter Gen8 ist zwar immer noch am laufen, aber es gibt einiges ...

Windows Server
Server 2019 RDS-CALs für Domänen-Admins? Ernsthaft?
gelöst anteNopeVor 1 TagFrageWindows Server7 Kommentare

Nabend zusammen, ich habe hier heute einen RDS auf Basis eines Server 2019 STD installiert und mit User-CALs lizenziert. Soweit funktioniert auch alles. Nur ...

Router & Routing
Probleme mit VPN Verbindung über shrewsoft
martenkVor 1 TagFrageRouter & Routing25 Kommentare

Hallo Gemeinschaft, habe ein Problem mit der o.g. Verbindung die Verbindung wird aufgebaut und ich kann auch den entfernten Rechner anpingen unter ipconfig sehe ...

Exchange Server
Outlook Automatisch auf alle eingehendem Mail eine Antwortvorlage versenden
shooanVor 1 TagFrageExchange Server13 Kommentare

Guten Morgen, ich hätte da gerne mal ein Problem zur Lösung. Auf das Freigegeben Postfach Bewerbung@ wünscht nun die Führung das auf alle Mail ...

Hardware
Versorgungsengpass Chips
NebellichtVor 21 StundenAllgemeinHardware11 Kommentare

Allg. frage ich mich ja warum Apple auf ARM frühzeitig gesetzt hat. Die Automobilindustrie gerade Absatzprobleme hat, weil keine Chips mehr geliefert werden können. ...

LAN, WAN, Wireless
100m GBit-Richtfunk im Freien - Produktempfehlungen?
mstrd308Vor 1 TagFrageLAN, WAN, Wireless9 Kommentare

Hallo zusammen, ich bin auf der Suche nach Produktempfehlungen um einen Richtfunk von einem Gebäude zu einen weiteren zu realisieren. Die Peripherie soll draußen ...