FreeDOS help system (hhstndrd 1.0.8 de)[_cmdif]

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.