In IF ein Klammer Problem
Hallo Zusammen,
Ich habe das Problem das ich die Fehlermeldung bekomme ""(" ist syntaktisch an dieser Stelle nicht verarbeitbar."
Und mein Code ist:
01. IF %I%-%DAYOFYEARNUMBER LSS 4 - %WEEKDAY% (
02. SET /A YEARNUMBER= %Y% +1
03. SET WEEKNUMBER=1 )
Was mach ich falsch ?
Ich habe alle Variablen gebildet und finde sonst eigentlich keinen Fehler...
Danke für eure Mithilfe!
Mit freundlichen Grüssen
Blueberry
Ich habe das Problem das ich die Fehlermeldung bekomme ""(" ist syntaktisch an dieser Stelle nicht verarbeitbar."
Und mein Code ist:
01. IF %I%-%DAYOFYEARNUMBER LSS 4 - %WEEKDAY% (
02. SET /A YEARNUMBER= %Y% +1
03. SET WEEKNUMBER=1 )
Was mach ich falsch ?
Ich habe alle Variablen gebildet und finde sonst eigentlich keinen Fehler...
Danke für eure Mithilfe!
Mit freundlichen Grüssen
Blueberry
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 99350
Url: https://administrator.de/forum/in-if-ein-klammer-problem-99350.html
Ausgedruckt am: 10.04.2025 um 11:04 Uhr
10 Kommentare
Neuester Kommentar
Hallo Sandro!

und bringt das gewünschte Ergebnis. Demzufolge werden wir uns wohl ansehen müssen, was in Deinem Batch vor dem entsprechenden Teil steht ...
Grüße
bastla
... woher weisst du das???
Mein Gedächtnis lässt zwar schön langsam nach, aber so lange ist jenes auch noch nicht her ... Ich hab es getestet, aber er gibt immer noch den gleichen Fehler aus
Mein Test sieht so aus:@echo off & setlocal
set /a i=10
set /a DAYOFYEARNUMBER=8
set /a WEEKDAY=1
set /a y=2008
SET /A Diff1=%I%-%DAYOFYEARNUMBER%
SET /A Diff2=4-%WEEKDAY%
IF %Diff1% LSS %Diff2% (
SET /A YEARNUMBER=%Y%+1
SET WEEKNUMBER=1
)
echo %YEARNUMBER%_%WEEKNUMBER%
Grüße
bastla
Moin Sandro,
ebenfalls Glückwunsch nachträglich.
Gewöhne Dir ruhig frühzeitig (=z.B. ab heute) an, IMMER "setlocal" zu verwenden und nur in absolut begründeten Ausnahmefällen kein "setlocal".
Grüße
Biber
ebenfalls Glückwunsch nachträglich.
Und ichhabe mal gelesen, dass ich dann die Variablen nicht mehr übergeben kann
Ich hoffe, das war nicht in diesem Forum. Ist nämlich Bullshit bzw. so nicht richtig.Gewöhne Dir ruhig frühzeitig (=z.B. ab heute) an, IMMER "setlocal" zu verwenden und nur in absolut begründeten Ausnahmefällen kein "setlocal".
Grüße
Biber
Hallo Sandro!
Besser so:
Ohne das "GOTO :EOF" wird auf jeden Fall ":SUB1" ausgeführt.
Falls es aber nach dem Teil ":SUB1" in beiden Fällen weitergehen soll, müsstest Du eine weitere Sprungadresse vergeben (zB ":Weiter") und im "ELSE"-Fall dort hin springen:
Grüße
bastla
Besser so:
IF %DAYOFYEARNUMBER% LEQ %DIFFL3% IF %JAN1WEEKDAY% LSS 4 (CALL :SUB1) ELSE (SET YEARNUMBER=%Y%)
GOTO :EOF
Falls es aber nach dem Teil ":SUB1" in beiden Fällen weitergehen soll, müsstest Du eine weitere Sprungadresse vergeben (zB ":Weiter") und im "ELSE"-Fall dort hin springen:
IF %DAYOFYEARNUMBER% LEQ %DIFFL3% IF %JAN1WEEKDAY% LSS 4 (CALL :SUB1) ELSE (SET YEARNUMBER=%Y% & GOTO :Weiter)
bastla