Was ist Batch?

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

MS DOS und Batch Dateien

Eine Batch-Datei ist eine selbstausführende Datei (Stapelverarbeitungsprogramm), die ein Ablauf von Dos-Befehlen verarbeitet. Eine Batch Datei kann mit jedem beliebigen Texteditor erstellt werden und muss mit der Datei-Endung ".bat" abgespeichert werden. Ein späteres umbennen in ".bat" ist auch möglich.
DOS stellt nur acht Befehle wie "ECHO, CALL, , FOR, GOTO, IF, PAUSE, REM und SHIFT zur Verfügung. Dazu kommen noch Umgebungsvariablen, Labels und @ Zeichen.

Ein- und Ausblenden von Kommentaren und Befehlszeilen
Mit dem "@" Zeichen vor einer Befehlszeile kann diese ausgeblendet werden.
Um alle ein- bzw. auszublenden kann das "@" Zeichen in Verbindung mit dem Befehl "ECHO" am Anfang der Datei verwendet werden.
"@ECHO ON" (alles Einblenden) oder
"@ECHO OFF" (alles ausblenden).
Bei "@ECHO OFF" werden nur noch die Echo-Zeilen ausgegeben.

Ein "REM" vor einer Zeile blendet diese nicht nur aus, sondern deaktiviert auch alle nachfolgenden Befehle in dieser Zeile.
Ein "::" bewirkt dasselbe und stellt die neuere Schreibweise dar. Beide Möglichkeiten bieten sich an, um Kommentare unterzubringen oder vorübergehend Befehle zu deaktivieren.

Ausgabe auf dem Bildschirm mit ECHO
Mit dem Befehl "ECHO" wird der nachfolgende Text in der Zeile auf dem Bildschirm ausgegeben. In der Verbindung mit einem Punkt, "ECHO.", wird ein kleiner Abstand zum linken Rand gewonnen.

Bildschirminhalt löschen mit CLS
Damit nicht immer alles auf dem Bildschirm stehen bleibt wenn neue Abläufe beginnen, kann dieser mit dem Befehl "CLS" gelöscht werden.

Ablauf anhalten mit PAUSE oder SLEEP
Mit dem Befehl "PAUSE" kann ein Programmablauf angehalten werden bis der Benutzer eine beliebige Taste drückt.
Mit dem Befehl "SLEEP" kann ein Programmablauf um die Angabe der Zeit in Sekunden verzögert werden.

Sprungziele und GOTO
In einer Stapelverarbeitungsdatei können mehrere Programmabläufe untergebracht werden, ohne das sie alle aufeinmal oder der Reihe nach abgearbeitet werden müssen. Mit dem Befehl "GOTO" kann eine Sprungmarke angesprungen werden. Eine Sprungmarke beginnt mit einem Doppelpunkt und darf, ausser Befehlsnamen, jeden erdenklichen Namen tragen.

Beispiel:
@ECHO OFF
::Meine Datei, erstellt am Montag.
GOTO :host
:netz
@ECHO ON
PING LOCALHOST
@ECHO OFF
GOTO :testende
:host
ECHO. Der Computername ist %COMPUTERNAME%.
SLEEP 4
GOTO :netz
:testende
CLS
ECHO. Programmende!!!
PAUSE
GOTO :EOF
:EOF

EOF und EOL
Das Sprungziel EOF steht für End Of File und soll die beendigung der Batch Datei beschleinigen. Zum anderen wird EOL genausooft gefunden oder verwendet und hat die Bedeutung End Of Line.

Variablen setzen, aufrufen und verändern



Die %1, %2, usw. Variablen
Die %-Variablen sind die, die beim start einer Batch-Datei mit übergeben werden. Es können neun %-Variablen übergeben werden und mit dem SHIFT-Befehl sogar zehn. Bei der Verwendung des Shift-Befehl ist zu beachten, dass dieser eine Verschiebung bewirkt. Die erste Variable ist dann %0 und die letzte %9. Am besten zeigt sich dies an einer Beispieldatei:

Den folgenden Quelltext unter "go.bat" speichern und im c:\ Verzeichnis ablegen. Diese kann jetzt wie folgt an der Eingabeaufforderung aufgerufen werden:
Syntax: go %1 %2 %3
go pin Computername
go nb Computername
go nsend Computername

@ECHO OFF
GOTO %1
:pin
PING %2
:nb
NBTSTAT -a %2
:nsend
NET SEND \\%2 %3
:EOF


Variablen setzen
Der Befehl SET zeigt alle zur Zeit gespeicherten Umgebungsvariablen an. SET kann auch Variablen erstellen.
SET NAME=WERT
Das positionieren des Gleichheitszeichen ist dabei sehr wichtig, denn
SET NAME=WERT ist nicht gleich wie
SET NAME =WERT oder
SET NAME= WERT.
Ein Leerzeichen vor dem Gleichheitszeichen erweitert den Variablennamen um das Leerzeichen und das Leerzeichen nach dem Gleichheitszeichen erweitert den Wert. Eine einmal definierte Variable kann immer wieder für die laufende Sitzung weiter verwendet werden.
Um eine Variable aufzurufen, wird der Variablen-Name in % Zeichen gehüllt.
%NAME%
Um das ganze in einer Datei zusammen zu führen habe ich folgendes Beispiel:
@ECHO OFF
SET NAME=Frank
ECHO. Mein Vorname ist %NAME%.
ECHO. Mein Betriebssystem ist %OS%
ECHO. Und mein Computername ist %Computername%
ECHO.


Das ganze wird spannender, wenn der Wert einer Variablen durch eine Benutzereingabe zugewiesen werden kann.
SET /P Variablenname=
Beispiel:
@ECHO OFF
ECHO. Bitte geben Sie Ihren Namen ein!
SET /P Name=
CLS
ECHO. Ihre Eingabe lautet %Name%.
Pause

Speicherbereich vergrößern
Ohne Angabe ist die Länge einer Variable auf 127 Zeichen, je nach Betriebssystem, begrenzt.
Es gibt jedoch die Möglichkeit, diesen Speicherbereich zu vergrößern. Dies wird mit dem Befehl COMMAND getan. Dabei wird mit dem Parameter /E (E steht für Environment) die Größe des Systemspeichers angegeben. Soll der Speicher für die Umgebungsvariablen um 5000 Bytes erweitert werden, so geschieht das mit dem Befehl:
COMMAND /E:5000