Befehl: if

  IF bewirkt bedingungsabhängige Verarbeitung in einem Stapelprogramm.
  IF ist ein BATCH-DATEI / AUTOEXEC.BAT Befehl.
  Er kann aber auch in der Kommandozeile verwendet werden.

Syntax:

  IF [NOT] ERRORLEVEL Nummer Befehl
  IF [NOT] Zeichenkette1==Zeichenkette2 Befehl
  IF [NOT] EXIST Dateiname Befehl
     Laufwerk   Der Laufwerksbuchstabe, z.B.: C:
     Pfad       Der zu wählende Pfad, z.B.: \Beispiel\
     Dateiname  Die zu wählende Datei, z.B.: test.txt

Optionen:

  NOT                Gibt an, daß der Interpreter den Befehl nur dann
                     ausführen soll, wenn die Bedingung nicht zutrifft.
                     (Ohne dies wird der Befehl ausgeführt, wenn die
                     Bedingung wahr ist).
  ERRORLEVEL Nummer  Ergibt eine wahre Bedingung, falls das zuletzt aus-
                     geführte Programm einen Ausgangscode zurückgegeben
                     hat, der gleich oder größer als die spezifizierte
                     Nummer ist.
  Befehl             Spezifiziert den bei zutreffender Bedingung auszu-
                     führenden Befehl.
  Zeichenkette1==Zeichenkette2
                     Ergibt eine wahre Bedingung, falls die spezifizierten
                     Zeichenketten übereinstimmen.
  EXIST Dateiname    Ergibt eine wahre Bedingung, falls die spezifizierte
                     Datei existiert.

Kommentar:

  ERRORLEVEL number:      DOS-Programme geben beim Beenden eine Zahl
                          aus (Errorlevel), der manchmal eine
                          Information darüber gibt, ob das Programm
                          erfolgreich oder mit Fehlern lief.
                          Wenn das zuletzt beendete Programm die
                          vorgegebene Nummer zurückgibt, ist die
                          Bedingung wahr.
  string1==string2        Wenn die zwei Zeichenketten gleich sind, dann
                          ist die Bedingung wahr.
  exist [Laufwerk][Pfad]  Wenn die angegebene Datei existiert, dann ist
        Dateiname         die Bedingung wahr.

  IF ist ein interner Befehl, d.h. der Befehl ist in der command.com
  enthalten. Es wird zur Ausführung des Befehls kein zusätzlicher 
  Befehl (Datei) benötigt.

Beispiel:

  IN EINER .BAT DATEI ODER DER AUTOEXEC.BAT:
    if exist c:\kernel.sys ECHO Kernel.sys existiert  
                  (bringt eine Meldung wenn kernel.sys existiert)
    set A=freedos     
    set B=freedos 
    set C=otherdos
    if %A%==%B% ECHO A und B sind gleicher Wert  
                  (A und B heißen "freedos", deshalb erscheint 
                   die Meldung)
    if %A%==%C% ECHO A und C sind gleicher Wert  
                  (A ist "freedos", C ist "otherdos", deshalb erscheint 
                   keine Meldung)
    if not %A%==%C% ECHO A und C sind NICHT gleicher Wert 
                  (A ist "freedos", C ist "otherdos", da sie NICHT 
                   identisch sind, wird die Meldung ausgegeben.) 

Siehe auch:

  autoexec.bat
  Batch-Dateien
  choice
  goto

  Copyright © 2003 Robert Platt, aktualisiert 2007 von W. Spiegl.

  Diese Datei ist abgeleitet vom FreeDOS Spezifikationen-HOWTO.
  Vgl. auch die Datei H2Cpying bezüglich der Kopierbedingungen.