BAT-Datei

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Windows Batch)
Wechseln zu: Navigation, Suche

Stapelverarbeitungsdatei
Windows Batch
Batch file
BatchIcon2.jpg
Dateiendung:
.BAT, .cmd
Erstveröffentlichung: 1981 mit PC DOS 1.0
Art: Stapelverarbeitung
Erweitert von: Unix-Shell
Erweitert zu: Windows PowerShell

Eine .BAT-Datei (von engl. batch) ist eine Stapelverarbeitungsdatei (englisch batch file, auch Batchdatei, Batchskript, Stapelverarbeitungsskript etc.), welche in PC-kompatiblen DOS-Betriebssystemen, OS/2 und Microsoft Windows ausgeführt werden kann.

Technische Details und Geschichte[Bearbeiten | Quelltext bearbeiten]

  • Das Dateiformat besteht aus Textdateien, welche von einem Kommandozeileninterpreter als Stapelverarbeitung ausgeführt werden kann. Der Kommandozeileninterpreter der meisten PC-kompatiblen DOS-Betriebssystemen wie MS-DOS, PC DOS oder DR-DOS ist COMMAND.COM, der von Windows NT ist cmd.exe.
  • Als Laufzeitumgebung und Interpreter wird der Kommandozeileninterpreter verwendet. Daher lassen sich alle Kommandozeilenbefehle in der Regel auch aus einer Stapelverarbeitungsdatei heraus ausführen. Des Weiteren sind auch Kommentare, Sprungmarken und Abfragen verwendbar.
  • Unter Windows NT werden die meisten Befehle von COMMAND.COM durch cmd.exe nachgebildet. Daher ist es möglich, dass eine für MS-DOS geschriebene Stapelverarbeitungsdatei unter Windows NT ausführbar ist.
  • Bei Microsoft wird eine Textdatei zur Stapelverarbeitung, indem sie die Dateinamenserweiterung .bat oder unter Windows NT und OS/2 alternativ die Dateinamenserweiterung .cmd erhält. Solche Dateien werden automatisch vom Kommandozeileninterpreter abgearbeitet, wenn sie mit ihrem Namen aufgerufen werden.
  • Im Jahr 2006 wurde von Microsoft PowerShell, eine modernere und plattformübergreifende Alternative, veröffentlicht, mit der Skripte in der eigens dafür entwickelten PowerShell Scripting Language geschrieben werden können.

Verwendung[Bearbeiten | Quelltext bearbeiten]

Stapelverarbeitungsdateien werden zur Ausführung von immer wiederkehrenden Befehlsfolgen verwendet (z. B. für automatisierte Anmeldevorgänge oder Laden von TSR-Programmen). Es ist auch möglich, die Ausführung einzelner Befehlszeilen von einer Bedingung abhängig zu machen. Dafür gibt es seit IBM DOS bzw. MS-DOS 2.0 Konstrukte wie IF oder IF NOT. Unter Windows-NT-basierten Systemen wurden unter anderem IF- und FOR-Befehle stark aufgewertet, indem sie zum Beispiel Vergleiche von Werten anboten. Neben diesen Bedingungsoperatoren können auch Variablen genutzt, Sprünge ausgeführt, Benutzereingaben realisiert und Kommentare geschrieben werden.

Im PC-kompatiblen DOS diente die Datei AUTOEXEC.BAT zur Systemkonfiguration beim Aufstart des Systems. Windows 3.x arbeitet beim Start die Datei WINSTART.BAT ab.

Bedeutung einiger Batch-Befehle[Bearbeiten | Quelltext bearbeiten]

  • @ECHO OFF: Unterdrückt die Ausgabe des Befehls in der Stapelverarbeitungsdatei
  • CLS (von englisch clear screen): Leert den Bildschirm
  • PAUSE: Pausiert eine Stapelverarbeitung solange, bis der Benutzer eine Taste gedrückt hat.
  • PAUSE > NUL: Pausiert eine Stapelverarbeitung solange, bis der Benutzer eine Taste gedrückt hat, die Meldung "Drücken sie eine beliebige Taste..." wird in die virtuelle Gerätedatei NUL umgeleitet, wodurch diese nicht auf dem Bildschirm ausgegeben wird.
  • EXIT: Beendet die Stapelverarbeitungsdatei

Hello-World-Beispiel[Bearbeiten | Quelltext bearbeiten]

Die Ausgabe des klassischen Hello-World-Beispiels lässt sich durch eine Stapelverarbeitungsdatei erzeugen. Diese sollte zuvor unter geeignetem Dateinamen z.B. hello.bat gespeichert werden.

REM Text "Hello World!" ausgeben
ECHO Hello World!

Eine erweiterte Version mit angepasster Titelzeile, Schrift- und Hintergrundfarbe und einer Aufforderung zum Schließen des Programmes durch einen Tastendruck könnte wie folgt aussehen:

Die Absätze sind jedoch nicht zwingend erforderlich, sie dienen lediglich zur besseren Übersichtlichkeit.

REM Befehle mit "@" werden nicht ausgegeben. Befehle mit REM werden nicht verarbeitet (Kommentar). Befehle mit :: oder @REM werden weder ausgegeben noch verarbeitet.
@ECHO OFF

REM Kommandozeilenfenster leeren
CLS

REM Der Titel des Fensters wird zu "Hallo-Welt-Programm" geändert (nur Windows)
TITLE Hallo-Welt-Programm 

REM Die Schrift- und Hintergrundfarbe wird geändert
COLOR 4E

REM Text "Hallo Welt!" wird ausgegeben
ECHO Hallo Welt!

REM Leerzeile ausgeben
ECHO.

REM Es wird der Text "Taste druecken zum Beenden" ausgegeben und gewartet bis der Benutzer eine Taste drueckt
ECHO Taste druecken zum Beenden
PAUSE > NUL

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]