[an error occurred while processing this directive]

Einführung in Windows-Kommandodateien. [] (Windows, Kommandodatei, Stapeldatei, Batch-Datei, Batch-Programmierung, command.com), Lektion, Seite 720655
http://www.purl.org/stefan_ram/pub/windows_kommandodatei_de ist die kanonische URI dieser Seite.
Stefan-Ram-Startseite

Kommandodateien

Wiederkehrende Kommandos können auch einmal in eine Kommandodatei  geschrieben werden.

Direkteingabe

Bei der Direkteingabe wird ein eingegebenes Kommando sofort nach Abschluß der Eingabe ausgeführt.

command.com
C:\USER\HANS>dir 
C:\USER\HANS>echo "hallo!"

Kommandodatei

Wenn man Kommandos in eine Textdatei schreibt, kann man sie später ausführen lassen. Zur Eingabe kann beispielsweise der Editor "edit" verwendet werden.

command.com
C:\WINDOWS>cd \user\hans 
C:\USER\HANS>edit zeige.bat

zeige.bat
dir 
echo hallo!

Nach Eingabe der beiden Zeilen wird im Editor das Kommando Datei/Speichern und das Kommando Datei/Beenden gegeben. Zur Kontrolle kann die erzeugte Datei auch noch einmal ausgegeben werden.

Aufruf
C:\USER\HANS>type zeige.bat 
dir 
echo hallo!

Die Kommandodatei mit dem Namen "zeige.bat" kann nun unter ihrem Namen aufgerufen werden, wobei die Endung ".bat" auch entfallen kann.

Aufruf
C:\USER\HANS>zeige.bat
Verzeichnis
hallo!
C:\USER\HANS>zeige
Verzeichnis
hallo!
C:\USER\HANS>

Der Dateityp ".bat" kommt von dem englischen Wort “batch” (Schub, Stoß [Briefe etc.]). Es geht zurück auf den Lochkartenstapel, in dem früher Kommandos gesammelt wurden.

Beispiel

Eine Startdatei, mit der immer wieder beim Start von command  nötige Kommandos leicht gegeben werden können läßt sich folgendermaßen erstellen.

command.com
C:\USER\HANS>edit s.bat

s.bat
DOSKEY 
PATH=C:\Programme\bin;%PATH%

Wenn solch eine Kommandodatei vorliegt, dann ist beim nächsten Aufruf von command nur noch in das Benutzerverzeichnis zu wechseln und "s" einzugeben, um das Programm "DOSKEY" zu laden und die Pfadliste zu erweitern.

command.com
C:\WINDOWS>cd \user\hans 
C:\USER\HANS>s

Allerdings sollte das Kommando "PATH=C:\Programme\bin;%PATH%" nicht wiederholt im selben Interpretierer eingegeben werden, weil die Effekte sich akkumulieren und so ein langer Pfad mit unnötigen Wiederholungen entstünden. Dies läßt sich erkennen, wenn nach Pfaderweiterung das Kommando "PATH" zur Anzeige des Pfads verwendet wird.

command.com
C:\>PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
C:\>PATH=C:\Programme\bin;%PATH%
C:\>PATH 
PATH=C:\PROGRAMME\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND
C:\>PATH=C:\Programme\bin;%PATH%
C:\>PATH 
PATH=C:\PROGRAMME\BIN;C:\PROGRAMME\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND
C:\>PATH=C:\Programme\bin;%PATH%
C:\>PATH 
PATH=C:\PROGRAMME\BIN;C:\PROGRAMME\BIN;C:\PROGRAMME\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND
C:\>PATH=C:\Programme\bin;%PATH%
C:\>PATH 
PATH=C:\PROGRAMME\BIN;C:\PROGRAMME\BIN;C:\PROGRAMME\BIN;C:\PROGRAMME\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND

Soll eine Stapeldatei mit Pfaderweiterung auch mehrfach aufrufbar sein, dann sollte der Pfad darin nicht erweitert sondern festgelegt werden. Dazu müssen alle im Pfad benötigten Verzeichnisse ausdrücklich in die Stapeldatei aufgenommen werden. Dabei werden allerdings später Erweiterungen des voreingestellten Pfades durch andere Programme nicht übernommen, so daß solch eine Datei dann gegebenenfalls erneut angepaßt werden muß.

s1.bat
DOSKEY 
PATH=C:\Programme\bin;C:\WINDOWS;C:\WINDOWS\COMMAND

Argumente *

Einer Kommandodatei können auch Argumente übergeben werden.

Aufruf
C:\USER\HANS>edit hallo.bat

Innerhalb der Kommandodatei kennzeichnet "%1" den ersten Parameter.

hallo.bat
echo Hallo %1!

Aufruf
C:\USER\HANS>hallo Peter 
Hallo Peter!
C:\USER\HANS>hallo Susanne 
Hallo Susanne!

Das folgende Beispiel erlaubt es den Aufruf zweier Kommandos mit einem offen gelassenem Argument zu automatisieren. Statt des Kommandos "javac Hallo.java" gefolgt von dem Kommando "java Hallo" kann dann das einzelne Kommando "j Hallo" eingegeben werden.

j.bat
javac %1.java 
java %1

Aufrufe *

Eine Stapeldatei kann auch eine andere Stapeldatei aufrufen (aktivieren). Dazu sollte das Kommando "call" verwendet werden. Die Stapeldatei "t.bat" führt beispielsweise zuerst die Stapeldatei "s1.bat" aus und ruft anschließend die Stapeldatei "j.bat" mit dem Argument "Test" auf.

t.bat
call s1.bat 
call j Test

Wenn der Aufruf ohne das Kommando "call" erfolgte, so würde die Ausführung zwar auch in der aufgerufenen Stapeldatei fortgesetzt werden, doch mit deren Ende würde der gesamte Prozeß enden. Folgende Kommandos in der aufrufenden Stapeldatei (wie das Kommando "j Test") würden dann nicht mehr ausgeführt werden.

Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Seiteninformation und Impressum  |   Formular für diese Seite betreffende Mitteilungen an den Herausgeber  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz