Es gibt auch Befehle, die, wenn nicht in einem Batch File eingesetzt, keine Wirkung zeigen oder absolut sinnlos sind.
Ein einfacher Befehl ist "echo". Mit diesem Befehl können Texte in einem Batch File angezeigt werden.
Normalerweise werden alle Befehle, die in einem Batch File aufgerufen werden, am Monitor ausgegeben. Der Befehl "echo off" verhindert dies, bis eine Zeile mit "echo on" im Batch File vorkommt, oder die Stapelverarbeitungsdatei durchgelaufen ist. Ein at-Zeichen (@) am Beginn einer Zeile verhindert, daß diese eine Zeile am Bildschirm angezeigt wird.
Nehmen wir Bsp.1: Wenn in einem Verzeichnis "d" eingegeben wurde sieht das Bild am Monitor so aus:
---Monitor---
C:\\> d --- Aufruf von D.BAT aus MS-DOS
C:\\> dir /p /o /a --- Erste Zeile von D.BAT wird angezeigt
[Auflistung der Dateien im Verzeichnis C:\\]
C:\\> --- Batch File beendet, DOS bereit für weitere Eingaben
---Monitor---
Falls man die Datei D.BAT ein wenig modifiziert, so kann man verhindern, daß der Befehl "dir /p /o /a" angezeigt wird. Die erste Zeile in D.BAT müßte so aussehen:
@dir /p /o /a
bzw. man benützt "echo off", dann braucht man schon zwei Zeilen:
@echo off
dir /p /o /a
So erhält man ein übersichtlicheres Bild, vor allem bei längeren Batch Files:
---Monitor---
C:\\> d --- Aufruf von D.BAT aus MS-DOS
[Auflistung der Dateien im Verzeichnis C:\\]
C:\\> --- Batch File beendet, DOS bereit für weitere Eingaben
---Monitor---
ECHO (ON/OFF)
Wenn ECHO ausgeschalten ist ("echo off") können auch einfache Meldungen ausgegeben werden.
Syntax: ECHO [Meldung]
Mit "echo." kann man eine leere Zeile anzeigen.
Man kann in D.BAT noch zwei Meldungen einbauen, vor und nach dem Aufruf vom DIR Befehl, um anzuzeigen wie weit das Batch File abgelaufen ist.
@echo off
echo Alle Dateien im Verzeichnis werden jetzt angezeigt:
echo. --- Hier wird beim Ausführen eine leere Zeile eingefügt
dir /p /o /a
echo.
echo D.BAT beendet.
Folgendes Bild würde sich dann ergeben:
---Monitor---
C:\\> d --- Aufruf von D.BAT aus MS-DOS
Alle Dateien im Verzeichnis werden jetzt angezeigt: --- Meldung wird angezeigt
--- eine leere Zeile wird eingefügt
[Auflistung der Dateien im Verzeichnis C:\\]
--- eine leere Zeile wird eingefügt
D.BAT beendet. --- zweite Meldung wird angezeigt
C:\\> --- Batch File beendet, DOS bereit für weitere Eingaben
---Monitor---
Sonderzeichen wie spitze Klammern können in Batch Files nicht angezeigt werden, weil diese eine andere Funktion erfüllen. (siehe unten)
CHOICE, GOTO
Ein weiterer spezieller Befehl für Batch Files ist "choice". Eigentlich ist es ein selbstständiges Programm, das ab DOS 6.0 mitgeliefert wird. Dieser Befehl kann Tastatureingaben abfragen, um, je nach Eingabe, eine Verzweigung zu erzeugen oder einen Befehl auszuführen. Eine ausführliche Beschreibung des Befehls findet man in der DOS-Hilfe.
Der choice Befehl wird hier an einem Beispiel erläutert:
---BSP.BAT---
@echo off
echo [A] drücken, um Programm auszuführen
echo [B] drücken, um BSP.BAT zu beenden und zu DOS zurückzukehren
choice /c:AB /n --- Hier wird auf eine Tastatureingabe von entweder "A" oder "B" gewartet
if errorlevel 2 goto ende --- siehe Erklärung unten
if errorlevel 1 goto programm
:programm --- ein Sprungziel wird mit einem Doppelpunkt markiert
cd\\programm --- ins Verzeichnis mit dem Programm wechseln
programm --- das Programm (EXE, COM oder BAT) ausführen
goto ende
:ende --- das Sprungziel am Ende der Datei beendet das Batch File
---BSP.BAT---
Erklärung zu if errorlevel: Falls choice den Fehlercode (Errorlevel) 2 zurückgibt, bedeutet das, daß "B" gedrückt wurde, da B an zweiter Stelle im choice Befehl angeführt wurde (/c:AB) und das zum Sprungziel "ende" gesprungen werden soll (goto ende). Falls aber A gedrückt wurde, springt das Batch File zum Sprungziel "programm", um von dort aus weitere Befehle auszuführen.
Normale Programme geben nach dem Beenden keinen Errorlevel zurück. Falls aber während dem Ausführen ein Fehler aufgetreten sein sollte, so geben die meisten Programme den Errorlevel 1 zurück. Somit kann man den weiteren Ablauf des Batch Files von der erfolgreichen oder misslungenen Ausführung eines Programms abhängig machen.
IF (NOT) EXIST
Mit dem "if exist" (bzw. "if not exist") Befehl läßt sich überprüfen, ob ein Verzeichnis, oder eine Datei existiert.
@echo off
if exist c:\\dos\\choice.com echo Choice gefunden - Batch File kann ausgeführt werden!
if not exist c:\\dos\\choice.com echo Choice NICHT gefunden - Batch File wird beendet!
if not exist c:\\dos\\choice.com goto ende
Diese Zeilen überprüfen, ob das DOS Zusatzprogramm choice installiert wurde und falls dies nicht der Fall sein sollte, wird das Batch File beendet (goto ende).
Falls man überprüfen will, ob ein Verzeichnis existiert, muß man einen kleinen Trick anwenden, wie im folgenden Beispiel beschrieben.
@echo off
if not exist c:\\bat\\nul md c:\\bat
Hier wird, falls das Verzeichnis C:\\BAT nicht existiert, selbiges mit dem MS-DOS Befehl md (Make Directory) erstellt. Bei der Abfrage mit if ist darauf zu achten, das man an den Verzeichnisnamen "\\nul" anhängt, da "if exist" nur die Existenz von Dateien feststellen kann.
Mit dem if Befehl lassen sich auch zwei Parameter miteinander vergleichen. Zu Beachten ist, das zwei Gleichheitszeichen gesetzt werden müssen.
@if (not) Parameter1==Parameter2 goto ...
|