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

In IF ein Klammer Problem

Frage Entwicklung Batch & Shell

Mitglied: Blueberry

Blueberry (Level 1) - Jetzt verbinden

15.10.2008, aktualisiert 18.10.2012, 4838 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 ..
Ähnliche Inhalte
Windows 7
USB Tastatur Problem nach ESET Installation (6)

Frage von PharIT zum Thema Windows 7 ...

Windows Server
SimpleHelp - Problem (4)

Frage von ArnoNymous zum Thema Windows Server ...

Microsoft
Problem mit meinem PC (24)

Frage von AaronH96 zum Thema Microsoft ...

DNS
gelöst Wieder ein Problem mit der ASA (4)

Frage von Yannosch zum Thema DNS ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

Frage von kartoffelesser zum Thema LAN, WAN, Wireless ...

Windows Server
ESXI Free Windows Server 2016 Datacenter aktivieren (11)

Frage von iDeathz zum Thema Windows Server ...

Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (10)

Frage von Spitzbube zum Thema Netzwerke ...

Voice over IP
SNOM D765 an LancomR883VAW (10)

Frage von MS6800 zum Thema Voice over IP ...