Batch-Datei mit 3 If-Bedingungen - muß über else oder sowas,oder aber wie?

Dieses Thema Batch-Datei mit 3 If-Bedingungen - muß über else oder sowas,oder aber wie? im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Pascal, 8. Juni 2007.

Thema: Batch-Datei mit 3 If-Bedingungen - muß über else oder sowas,oder aber wie? Hi, @for /F tokens=13,* %%i in ('ipconfig^|find IP-Ad') do @set IPNEW=%%j if %IP% == %IPNEW% GOTO AGAIN if %IP% ==...

  1. Hi,

    Code:
    @for /F tokens=13,* %%i in ('ipconfig^|find IP-Ad') do @set IPNEW=%%j
    if %IP% == %IPNEW% GOTO AGAIN
    if %IP% == 192.168.0.200 GOTO AGAIN
    if %IP% == 192.168.0.1 GOTO AGAIN
    
    die 2ten beiden IF-Bedingungen werden so nicht beachtet, oder? Irgendwie schwebt mir was von if und else in Kombination vor. Aber genau, weiß ich nicht wie das noch mal war.

    Ziel: die 2te und dritte IF-Bedingung, soll wie die erste zum Goto Again führen.

    Pascal
     
  2. Verarbeitet Ausdrücke in einer Batchdatei abhängig von Bedingungen.

    IF [NOT] ERRORLEVEL Nummer Befehl
    IF [NOT] Zeichenfolge1==Zeichenfolge2 Befehl
    IF [NOT] EXIST Dateiname Befehl

    NOT Befehl wird nur dann ausgeführt, wenn die Bedingung nicht
    erfüllt ist.

    ERRORLEVEL Nummer Bedingung ist erfüllt, wenn das zuletzt ausgeführte
    Programm einen Code größer oder gleich der Nummer
    zurückgibt.

    Zeichenfolge1==Zeichenfolge2
    Bedingung ist erfüllt, falls die Zeichenfolgen gleich sind.

    EXIST Dateiname Bedingung ist erfüllt, wenn die angegebene Datei existiert.

    Befehl Gibt den Befehl an, der bei erfüllter Bedingung ausgeführt
    werden soll. Diesem Befehl kann das Schlüsselwort ELSE
    folgen. Der Befehl nach dem Wort ELSE wird ausgeführt, wenn
    die angegebene Bedingung nicht erfüllt ist (FALSE).

    Die ELSE-Klausel muss auf der Zeile mit dem Befehl nach dem IF stehen.
    Zum Beispiel:

    IF EXIST test.txt (
    del test.txt
    ) ELSE (
    echo test.txt fehlt
    )

    Die beiden folgenden Beispiele funktionieren nicht. Im ersten Fall wird der
    DEL-Befehl nicht durch ein Zeilenende abgeschlossen:

    IF EXIST test.txt del test.txt ELSE echo test.txt fehlt

    In zweiten Fall befindet sich der ELSE-Befehl nicht auf derselben Zeile mit
    dem IF Schlüsselwort:

    IF EXIST test.txt del test.txt
    ELSE echo test.txt fehlt

    Hier ein Beispiel, wie alles auf einer Zeile angegeben werden kann:

    IF EXIST test.txt (del test.txt) ELSE echo test.txt fehlt

    Wenn die Befehlserweiterungen aktiviert sind, wird der IF-Befehl folgendermaßen
    verändert:

    IF [/I] Zeichenfolge1 Vergleichsoperator Zeichenfolge2 Befehl
    IF CMDEXTVERSION Zahl Befehl
    IF DEFINED Variable Befehl


    manchmal ist die Hilfe des BS hilfreich, ich hoffe auch hier
     
  3. ja, o.k. soweit ist mir das schon klar.

    Ich will aber wissen, ob man drei IF-Bedingungen gleichzeitig setzten kann? Oder halt 1x IF und 2x Else irgendwie verschachteln, wobei mir 3x IF lieber wäre, weils einfacher wär.

    Geht sowas?

    Also mal gesprochen:
    _______________________________________
    Wenn der Clown ne gelbe Nase hat, dann gib ihm ne andere Farbe
    Wenn der Clown ne rote Nase hat, dann gib ihm ne andere Farbe
    Wenn der Clown ne grüne Nase hat, dann gib ihm ne andere Farbe
    .
    .
    .
    rem echo sonst geht es mit dieser Zeile weiter
    echo Der Clown hat keine gelbe, rote oder grüne Nase.
    ___________________________________________________
     
  4. IF %clown%==gelb (
    SET clown=lila
    GOTO xyz
    )
    IF %clown%==gruen (
    SET clown=lila
    GOTO xyz
    )
    IF %clown%==rot (
    SET clown=lila
    GOTO xyz
    )

    IF %clown%==lila (
    ECHO Der Clown ist lila
    ) ELSE (
    Echo der Clown ist farblos oder %clown%
    )
     
  5. O.k., werden die denn dann gleichbedeutend gesehen, die If-Bedingungen? Also wäre das nicht so dann auch möglich:

    Code:
    :AGAIN
    MaleClownZufälligAn.exe
    if %CLOWN% == gelb GOTO AGAIN
    if %CLOWN% == gruen GOTO AGAIN
    if %CLOWN% == rot GOTO AGAIN
    :END
    echo Der Clown ist nicht gelb, gruen oder rot.
    
     
  6. im Prinzip ja, hab aber festgestellt, das die Abfragen manchmal daneben geben.
    Irgendwie sind die Proz heutzutage zu schnell.
    Was aber beachtet werden muß ist das vermeiden unnötiger Leerzeichen, sowohl bei Zuweisungen, Abfragen etc

    IF %clown% == irgendwas
    ^ ^
    bedeutet übersetzt

    Inhalt der Var Clown + leerzeichen mit leerzeichenirgendwas zu vergleichen - und dat ward nix

    Ich finde die Variante mit den Klammern übersichtlicher, und was für mich entscheidend ist, sie ist schneller
    Lieber einen direkten Sprung, als xundachtzig Abfragen anzufassen.
    Bei 3 Abfragen mag es sich zeitlich noch nicht bemerkbar machen, bei 10 oder mehr aber sehr wohl
     
  7. jo, da hast du recht. Aber ich finde das einfacher halt. Ich muß mich nochmal in deine Methode reingrübeln. :)
     
Die Seite wird geladen...

Batch-Datei mit 3 If-Bedingungen - muß über else oder sowas,oder aber wie? - Ähnliche Themen

Forum Datum
Probleme beim Ausführen einer Batch-Datei Windows XP Forum 5. Mai 2013
Verzeichnisrechte per Batch-Datei Windows XP Forum 18. März 2013
cmd-Ausgabe bei Batch-Dateien trotz Dateiumleitung Webentwicklung, Hosting & Programmierung 27. Okt. 2010
Batch-Datei, um MAC-Adressen von (mehreren) anderen Rechnern auszulesen Webentwicklung, Hosting & Programmierung 2. Juli 2010
Batch-Datei ähnlich apples time machine ? Windows XP Forum 28. Juni 2009