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
Please also mark the comments that contributed to the solution of the article
Content-Key: 99350
Url: https://administrator.de/contentid/99350
Printed on: April 23, 2024 at 07:04 o'clock
10 Comments
Latest comment
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