BAT-Datei

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

Vorlage:Infobox Dateiformat/Wartung/MIME fehltVorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Entwickler fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt

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, welche in PC-kompatible DOS-Betriebssystemen, OS/2 und Microsoft Windows ausgeführt werden kann.

Technische Details und Geschichte[Bearbeiten]

Das Dateiformat besteht aus Textdateien, welche von einem Kommandozeileninterpreter als Stapelverarbeitung ausgeführt werden kann. Der Kommandozeileninterpreter von den 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 einem Stapelverarbeitungsskript heraus ausführen. Des Weiteren sind auch Kommentare, Sprungmarken und Abfragen verwendbar.

Die meisten Befehle von COMMAND.COM werden von cmd.exe nachgebildet. Daher ist es möglich, dass ein für MS-DOS geschriebenes Stapelverarbeitungsskript unter Windows NT ausführbar ist.

Bei Microsoft wird eine Textdatei zur Stapelverarbeitung, indem sie die Dateinamenserweiterung .bat oder unter Windows NT alternativ die Dateinamenserweiterung .cmd erhält. Solche Dateien werden automatisch vom Kommandozeileninterpreter abgearbeitet, wenn sie mit ihrem Namen aufgerufen werden.

Im Jahr 2006 wurde ein potenzieller Nachfolger der Kommandozeilen-Laufzeitumgebung unter dem Namen Windows PowerShell von Microsoft veröffentlicht, mit dem Skripte in der eigens dafür entwickelten PowerShell Scripting Language geschrieben werden können.

Verwendung (DOS)[Bearbeiten]

In MS-DOS war der Übergang zwischen Kommandozeile und Batch-Dateien, die in erster Linie die Systemverwaltung flexibel regeln sollten, nahezu fließend, da dieselben Befehle benutzt wurden. Für Konfigurationen des Benutzers benötigte MS-DOS unter anderem die Datei AUTOEXEC.BAT, die während des Boot-Vorganges ausgeführt wurde.

Windows 3.x arbeitet beim Start die Datei WINSTART.BAT ab.

Verwendung (Windows)[Bearbeiten]

Unter Windows werden Batch-Skripte vor allem zur Ausführung von immer wiederkehrenden Befehlsfolgen verwendet (z. B. für automatisierte Anmeldevorgänge). Es ist auch möglich, die Ausführung einzelner Befehlszeilen von einer Bedingung abhängig zu machen. Dafür gibt es Konstrukte wie IF oder IF NOT. Unter Windows-NT-basierten Systemen gab es außerdem die so genannte Befehlserweiterung, welche insbesondere die IF- und FOR-Befehle stark aufwerteten, 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.

Beispiele[Bearbeiten]

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

@REM Befehle nicht ausgeben, hat die gleiche Wirkung wie ein jedem Befehl vorangestelltes @-Symbol
@echo off
REM Text "Hello World!" ausgeben
echo Hello World!
REM Damit sich das Programm nicht direkt schliesst: Sobald der Benutzer eine Taste drueckt schließt sich die Anwendung
pause

Wird dieser Code nun erweitert, ergibt dies zudem eine schöne grafische Darstellung:

@REM Befehle nicht mit ausgeben, hat die gleiche Wirkung wie ein jedem Befehl vorangestelltes @-Symbol
@echo off 

REM Kommandozeilenfenster leeren
cls

rem Der Titel des Fensters wird zu "Hallo-Welt-Programm"
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 drückt
echo Taste druecken zum Beenden
pause > nul

rem Programm wird beendet
exit

Ein für die Programmierpraxis nützliches Beispiel ist das folgende

dir /B /S /A *.~??* | find "\src" > temp-files.txt

Es erstellt eine Liste aller Dateien eines Verzeichnisbaums, die in src-Unterverzeichnissen liegen und die als Backup mit einer Tilden-Markierung in der Dateiendung gespeichert wurden (wie bei manchen Texteditoren üblich). Hier werden das interne Kommando DIR zur Suche und das externe Kommando FIND zum Filtern eingesetzt. Die Dateiliste wird in einer Textdatei namens temp-files.txt gespeichert.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]