Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

In IF ein Klammer Problem

Frage Entwicklung Batch & Shell

Mitglied: Blueberry

Blueberry (Level 1) - Jetzt verbinden

15.10.2008, aktualisiert 18.10.2012, 4813 Aufrufe, 10 Kommentare

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
Mitglied: bastla
15.10.2008 um 15:06 Uhr
Hallo Sandro!

Leicht verspätet: Alles Gute zum Geburtstag!
Berechnungen in Batch kannst Du eigentlich nur bei der Zuweisung zu einer Variablen machen - daher:
01.
SET /A Diff1=%I%-%DAYOFYEARNUMBER% 
02.
SET /A Diff2=4-%WEEKDAY% 
03.
IF %Diff1% LSS %Diff2% ( 
04.
    SET /A YEARNUMBER=%Y%+1 
05.
    SET WEEKNUMBER=1 
06.
)
Grüße
bastla
Bitte warten ..
Mitglied: Blueberry
15.10.2008 um 15:12 Uhr
Hallo Bastla,

Erstma Danke für den Glückwunsch^^. (Hattest wohl Langeweile und hast mal die Profiledurchgeklickt oder woher weisst du das???).

Und zum anderen:

Auch Danke xDD. Ich guck gleich ma ob das Funktioniert...

[EDIT] Ich hab es getestet, aber er gibt immer noch den gleichen Fehler aus [/EDIT]


Mit freundlichen Grüssen

Blueberry
Bitte warten ..
Mitglied: bastla
15.10.2008, aktualisiert 18.10.2012
Hallo Sandro!

... woher weisst du das???
Mein Gedächtnis lässt zwar schön langsam nach, aber so lange ist dieses oder jenes auch noch nicht her ...
Ich hab es getestet, aber er gibt immer noch den gleichen Fehler aus
Mein Test sieht so aus:
01.
@echo off & setlocal 
02.
set /a i=10 
03.
set /a DAYOFYEARNUMBER=8 
04.
set /a WEEKDAY=1 
05.
set /a y=2008 
06.
 
07.
SET /A Diff1=%I%-%DAYOFYEARNUMBER% 
08.
SET /A Diff2=4-%WEEKDAY% 
09.
IF %Diff1% LSS %Diff2% ( 
10.
    SET /A YEARNUMBER=%Y%+1 
11.
    SET WEEKNUMBER=1 
12.
13.
echo %YEARNUMBER%_%WEEKNUMBER%
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
Bitte warten ..
Mitglied: Blueberry
15.10.2008 um 16:05 Uhr
Also ich habe das & setlocal nicht...
Ich habe ein paar Sub-Programme in meiner Batch-Datei... Und ichhabe mal gelesen, dass ich dann die Variablen nicht mehr übergeben kann (also die heissen alle :sub1 ausser das sich die zahl immer um 1 erhöht... Und das is alles im einem Batch auch das richtige Programm...)

Mit freundlichen Grüssen

Blueberry
Bitte warten ..
Mitglied: bastla
15.10.2008 um 16:16 Uhr
Hallo Sandro!

Am "setlocal" wird's vermutlich nicht liegen.

Wenn Du Dir hinsichtlich der Variablenwerte nicht sicher bist, kannst Du diese ja zur Kontrolle an der entsprechenden Stelle durch
echo %Variable%
ausgeben lassen.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
15.10.2008 um 17:06 Uhr
Moin Sandro,

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
Bitte warten ..
Mitglied: Blueberry
16.10.2008 um 08:25 Uhr
Hallo Biber,

Ich danke auch dir für den Glückwunsch .
Und wegem Setlocal, da gibts ja irgendwie eine erweiterung... also ich weiss nicht genau wie die heisst, aber es gibt sie. Ich hab grad mal nachgeschaut und es war soweit ich weiss, nicht in diesem Forum. Evtl. wisst ihr ja von was ich spreche . Ich weisses jedenfalls nicht mehr...

Ehm noch ne Frage:
Bei mir wird die Variable YEATNUMBER nicht definiert...

IF %DAYOFYEARNUMBER% LEQ %DIFFL3% IF %JAN1WEEKDAY% LSS 4 CALL :SUB1 ELSE SET YEARNUMBER=%Y%

:SUB1
SET /A YEARNUMBER=%Y%-1

IF %JAN1WEEKDAY%==5 (SET WOCHEN=53) ELSE (IF %JAN1WEEKDAY%==6 IF "%Y%-%LEAPYEAR%" == %Y% (SET WOCHE= 53) ELSE (SET WOCHE= 52))

GOTO :EOF


Mit freundlichen Grüssen

Blueberry
Bitte warten ..
Mitglied: bastla
16.10.2008 um 09:45 Uhr
Hallo Sandro!

Besser so:
01.
IF %DAYOFYEARNUMBER% LEQ %DIFFL3% IF %JAN1WEEKDAY% LSS 4 (CALL :SUB1) ELSE (SET YEARNUMBER=%Y%) 
02.
GOTO :EOF
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:
01.
IF %DAYOFYEARNUMBER% LEQ %DIFFL3% IF %JAN1WEEKDAY% LSS 4 (CALL :SUB1) ELSE (SET YEARNUMBER=%Y% & GOTO :Weiter)
Grüße
bastla
Bitte warten ..
Mitglied: Blueberry
16.10.2008 um 09:54 Uhr
Hallo Bastla,

Wenn ich die Variante 1 nehme, dann beendet es ja das Programm... Und das Programm ist noch weit grösser als nur der Teil .
Wo muss ich das :weiter setzten wenn ich Variante zwei nehme ?

Mit freundlichen Grüssen

Blueberry

[EDIT]
Ich habe das Problem gelöst Die Lösung ist eigentlich ganz einfach:
IF %DAYOFYEARNUMBER% LEQ %DIFFL3% (SET VAR1=1) ELSE (SET VAR1=0)
IF %JAN1WEEKDAY% LSS 4 (SET VAR2=1) ELSE (SET VAR2=0)
SET /A VAR3=%VAR1%+%VAR2%
IF %VAR3% GTR 1 (CALL :SUB1) ELSE (SET YEARNUMBER=%Y%)
[/EDIT]
Bitte warten ..
Mitglied: Blueberry
16.10.2008 um 11:08 Uhr
Hallo Bastla,

Du kannst, wenn dus kannst , diesen Thread schliessen...
mach noch n Kommentar

Mit freundlichen Grüssen

Blueberry
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Multimedia & Zubehör
BENQ Beamer Fernbedingung Frequenz Problem (2)

Frage von xbast1x zum Thema Multimedia & Zubehör ...

Windows Server
Google Chrome Web Store Problem auf Terminal Farm

Frage von dakoerry zum Thema Windows Server ...

Multimedia & Zubehör
gelöst Problem: DVI zu VGA (8)

Frage von Protected zum Thema Multimedia & Zubehör ...

Windows Server
Problem bei Zertifikatsverlängerung auf SBS2008 (2)

Frage von Firewire zum Thema Windows Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...