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 (C) 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.