Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

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

Frage Entwicklung Batch & Shell

Mitglied: eisdiele

eisdiele (Level 1) - Jetzt verbinden

29.08.2006, aktualisiert 10:28 Uhr, 7386 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:
01.
::--------snipp dateSplit.bat 
02.
@echo off  
03.
REM Datum auslesen 
04.
@for /F "tokens=1-3 delims=." %%a in ('date /T') do ( 
05.
       set MYMONAT=1%%b 
06.
       set MYJAHR=%%c 
07.
       set MYTAG=1%%a 
08.
09.
REM echo %myjahr%%mymonat%%mytag% 
10.
 
11.
IF %MYMONAT% LEQ 103 ( 
12.
       set /a MYMONAT = %MYMONAT% + 9 
13.
       set /a MYJAHR = %MYJAHR% - 1 
14.
) else (  
15.
       set /a MYMONAT = %MYMONAT% - 3 
16.
17.
Set mymonat=%mymonat:~1,2% 
18.
Set mytag=%mytag:~1,2% 
19.
Echo Mytag:[%Mytag%] MyMonat [%Mymonat%] MyJahr [%MyJahr%] 
20.
 
21.
REM Output: >datesplit.bat 
22.
REM Output: Mytag:[29] MyMonat [05] MyJahr [2006] 
23.
:: ---------snapp DateSplit.bat
HTH Biber
Siehe auch mein Batch-Tutorial III (Umgang mit Datums- und Zeitvariablen im Batch..)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Wie arbeitet das cmdlet "Set-HPBiosUEFIBootOrder" ? (3)

Frage von MasterBaiter zum Thema Batch & Shell ...

JavaScript
LocalStorage für folgende Funktion (7)

Frage von xsto123 zum Thema JavaScript ...

Microsoft Office
Office 365 Datei im Sharepoint erscheint immer wieder (5)

Frage von olimo zum Thema Microsoft Office ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(9)

Information von BassFishFox zum Thema Datenschutz ...

Heiß diskutierte Inhalte
Windows Installation
Windows 10 neu installieren (17)

Frage von imebro zum Thema Windows Installation ...

Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...