# AUTOEXEC.BAT

Die AUTOEXEC.BAT ist eine Stapelverarbeitungsdatei, die beim Start eines MS-DOS-kompatiblen DOS automatisch ausgeführt wird. Der Dateiname ist ein Kofferwort aus den Begriffen automatic („automatisch“) und execution („Ausführung“, siehe ausführbare Datei) und endet mit der für Stapelverarbeitungsdateien verwendeten Dateinamenserweiterung .BAT (für batch file, daher auch oft „Batchdatei“ bezeichnet). Ab Windows 95 kann sie dank VFAT auch als autoexec.bat klein geschrieben werden. Die AUTOEXEC.BAT wird auch manchmal als „Anpassungsdatei“ oder „automatische Startdatei“ bezeichnet und gemeinsam mit der CONFIG.SYS als Konfigurationsdatei unter DOS-basierten Betriebssystemen verwendet.

## Geschichte

Die beiden Dateien CONFIG.SYS und AUTOEXEC.BAT wurden mit MS-DOS 2.0 von Microsoft, veröffentlicht im März 1983, eingeführt (PC DOS 2.0 von IBM ist quasi identisch), das erstmals auch Festplatten unterstützte. Dabei enthält die AUTOEXEC.BAT üblicherweise Befehle, die sonst bei jedem Systemstart manuell eingegeben werden müssten. Beide Dateien befinden sich im Stammverzeichnis des Systemlaufwerks, also jenes Startmediums oder jener aktiven Partition, von wo aus das gerade laufende DOS gestartet wurde. Im Gegensatz zur AUTOEXEC.BAT konnten die Anweisungen aus der CONFIG.SYS jedoch nicht auch später noch als Befehle auf der Eingabeaufforderung ausgeführt werden.
Auch unter OS/2 wird die AUTOEXEC.BAT für Anpassungen des Systems im DOS-kompatiblen Modus verwendet, ebenso wie bei den DOS-basierten Windows-Versionen, zusammengefasst als Windows 9x, wo sie wie gehabt zum Einrichten der DOS-Umgebung benötigt wird.

## Nutzung

Die AUTOEXEC.BAT enthält meist Einstellungen und Befehle, die das Betriebssystem individuell anpassen. Dazu zählen der Start weiterer Treiber (zusätzlich zu jenen, die bereits per CONFIG.SYS geladen wurden), Lokalisierung, das Setzen von Umgebungsvariablen, Individualisierung des Eingabe-Prompts u. Ä.
Die Datei wird beim Systemstart vom primären Kommandozeileninterpreter, bei MS-DOS und PC DOS COMMAND.COM, ausgeführt, bei Windows 9x noch vor dem Start der grafischen Oberfläche. Der Kommandozeileninterpreter startet auch dann, wenn keine AUTOEXEC.BAT vorhanden ist – führt dann allerdings die Aufforderung zur Eingabe der Systemzeit automatisch aus, was bei Vorhandensein der AUTOEXEC.BAT nicht der Fall ist. Auf frühen PCs ohne Echtzeituhr (englisch Real Time Clock, RTC) sollten daher, wenn das DOS-Startmedium eine AUTOEXEC.BAT beinhaltet, die Kommandos DATE und TIME auch in die AUTOEXEC.BAT aufgenommen werden.
Spätere DOS-Versionen ermöglichen das Laden einiger Gerätetreiber auch über die Kommandozeile – und damit auch über die AUTOEXEC.BAT. Dafür bietet beispielsweise PC DOS ab Version 7.0 (Februar 1995) den Befehl DYNALOAD und DR-DOS ab Version 7.03 (März 1999) den Befehl DEVLOAD. Auch mit diversen externen Programmen ist es möglich, einige Treiber, die normalerweise nur beim Betriebssystemstart in der CONFIG.SYS geladen werden können, später nachzuladen.
Anwendungen, die bei Start der Windows-Umgebung ausgeführt werden sollen, verwenden andere Mechanismen (beispielsweise Einträge in der Windows-Registrierungsdatenbank oder im Autostart-Ordner, siehe hierzu Windows-Autostart-Möglichkeiten).

## Aufbau

Als Stapelverarbeitungsdatei ist die AUTOEXEC.BAT eine Textdatei und kann vom Benutzer z. B. mit einem Texteditor nach eigenen Wünschen und Vorlieben geändert werden. Daher gibt es keinen festgelegten Inhalt, sondern nur übliche Einträge. Ein sehr einfaches Beispiel ist:
Wie unter DOS üblich sind die Kommandos nicht case sensitive, @echo off ist daher gleichbedeutend mit @ECHO OFF. Diese erste Zeile unterbindet die Ausgabe aller weiteren Befehle während der Ausführung der Stapelverarbeitungsdatei, wobei das vorangestellte At-Zeichen @ die Ausgabe eines einzelnen Kommandos (also der ersten Zeile) verhindert – sonst würde jede Zeile der AUTOEXEC.BAT jeweils vor der Ausführung des entsprechenden Kommandos als Text am Bildschirm ausgegeben, was zur Fehleranalyse zwar durchaus hilfreich sein kann, normalerweise aber eher unerwünscht ist. Das zweite Kommando stellt die DOS-Eingabeaufforderung darauf ein, dass der aktuelle Pfad ($P) gefolgt von einem > (Größer-als-Zeichen, $G) als Prompt erscheint.
Meist ist die AUTOEXEC.BAT deutlich weiter ausgebaut, da viele Installationsprogramme Treiber, TSR-Programme und Umgebungsvariablen darin eintragen. Sie könnte auf einem System mit MS-DOS und Windows 3.11 beispielsweise so aussehen:
Diese Konfiguration legt den Standard-Prompt fest, definiert die Liste der Standardverzeichnisse für die Suche nach ausführbaren Dateien (Suchpfad, PATH-Umgebungsvariable) sowie die TEMP-Variable für das Verzeichnis für temporäre Dateien, startet u. a. die Dienste Festplattencache (SMARTDRV.EXE) und Netzwerk-Dateisperrdienst (SHARE.EXE), lädt den Maustreiber und startet zuletzt Windows.
Zeilen, die mit der Bezeichnung REM beginnen, enthalten Anmerkungen (englisch remark). Entsprechend wird der REM-Befehl immer dann benutzt, wenn Teile kommentiert werden sollen oder wenn einzelne Funktionen temporär ausgeschaltet sind, beispielsweise verschiedene Treiber. Eine weitere Methode zur Kommentierung sind zwei Doppelpunkte (::), diese wird jedoch sehr selten genutzt.

### Alternative Dateinamen

Grundsätzlich kann in der CONFIG.SYS die Betriebssystem-Shell derart festgelegt werden, dass beim Aufruf ein beliebiges Kommando ausgeführt wird. Damit kann die AUTOEXEC.BAT indirekt auch einen anderen Dateinamen verwenden und in einem beliebigen Verzeichnis liegen.
Diese Anweisung definiert COMMAND.COM als primäre Shell (entspricht bei DOS dem Kommandozeileninterpreter) und führt die angegebene Datei beim Start aus, in diesem Beispiel die Stapelverarbeitungsdatei C:\PCSTART.BAT.
Alternative DOS-Varianten oder Kommandozeileninterpreter verwenden oft vordefinierte Alternativen, obwohl immer zusätzlich der von PC DOS/​MS-DOS vorgegebene Standard AUTOEXEC.BAT im Stammverzeichnis unterstützt wird. So startet beispielsweise 4DOS zusätzlich 4START.BTM, wenn die Datei vorhanden ist; PTS-DOS nutzt in der Standard-Installation AUTOPTS.BAT (und CONFIG.PTS). Caldera DR-DOS 7.02/7.03 verwendet als Konfigurationsdateien DCONFIG.SYS und AUTODOS7.BAT, wenn die Dateien CONFIG.SYS und AUTOEXEC.BAT bei der Installation bereits vorhanden sind. So kann DR-DOS auf derselben Partition neben einem existierenden MS-DOS/​PC DOS oder Windows 9x installiert werden (Multi-Boot-System).
Unter OS/2 wird nach der CONFIG.SYS üblicherweise STARTUP.CMD ausgeführt, das der Funktion einer AUTOEXEC.BAT entspricht. Für die Dauer einer DOS-Sitzung kann OS/2 zusätzlich eine jeweils angepasste AUTOEXEC.BAT nutzen.

### Bootmenü

Ab MS-DOS 6.0 und dem in großen Teilen identischen PC DOS 6.0 gibt es die Möglichkeit, in der CONFIG.SYS ein Bootmenü einzurichten, um verschiedene Konfigurationen der Systemeinrichtung leicht zu ermöglichen. Die gewählte Konfiguration lässt sich in der AUTOEXEC.BAT ermitteln und entsprechend kann diese dann nur bestimmte Abschnitte ihres Inhalts ausführen.

## Windows 3.x und 9x

* COMMAND.COM
* AUTOEXEC.BAT
* Windows/386 (win.com)
* Speicherverwaltung mit EMS-Emulation
* WINSTART.BAT
* Windows-Benutzeroberfläche
* MS-DOS-Modus: DOSSTART.BAT
Nach der AUTOEXEC.BAT wird bei Windows 3.x ab Version 3.1 im „Erweiterten Modus für 386“ und bei Windows 9x zusätzlich bzw. direkt vor dem Start der Windows-Benutzeroberfläche die Datei WINSTART.BAT ausgeführt, wenn sie vorhanden ist. Sie findet sich üblicherweise im Windows-Installationsverzeichnis, meist C:\WINDOWS (Umgebungsvariable %WINDIR%), kann prinzipiell jedoch auch in jedem anderen Verzeichnis liegen, sofern sich dieses im Suchpfad (Umgebungsvariable PATH) befindet. Für alle Programme, die in der WINSTART.BAT gestartet werden, steht die Windows-Speicherverwaltung für den Expanded Memory (EMS) zur Verfügung, Windows-Anwendungen können dann auf Funktionen (Software-Interrupts) von damit geladenen Treibern und TSR-Programmen zugreifen. DOS-Programme benötigen dafür zwingend einen eigenen EMS-Speichermanager, etwa EMM386.EXE, und müssen noch vor dem Windows-Start (z. B. per AUTOEXEC.BAT) oder jeweils in einem MS-DOS-Fenster geladen werden. Bei der Installation von Windows 95 werden einige TSR-Programme aus der AUTOEXEC.BAT in die WINSTART.BAT verschoben, die normalerweise nicht von MS-DOS-Programmen benötigt werden.
Die WINSTART.BAT ermöglicht unter Windows 9x, den Start von Windows zu unterbrechen: enthält sie z. B. die Zeile COMMAND.COM, so startet eine sekundäre MS-DOS-Kommandozeile (Shell). Windows wird erst dann gestartet, wenn diese Shell per Eingabe von exit beendet wird.
Für den MS-DOS-Modus von Windows 95/​98 wird nach Beendigung der grafischen Oberfläche die Datei DOSSTART.BAT aus dem Windows-Installationsverzeichnis (%WINDIR%, meist C:\WINDOWS) ausgeführt. Bei Windows Me wurde der MS-DOS-Modus entfernt.

## Windows NT

In der Windows-NT-Betriebssystemlinie und seinen Weiterentwicklungen ab Windows 2000 ist Autoexec.nt, das Äquivalent der AUTOEXEC.BAT, Teil des 16-Bit-MS-DOS-Subsystems und liegt unter %SystemRoot%\system32. Diese Datei wird nicht beim Start des Computers geladen, sondern nur dann, wenn eine DOS-basierte Anwendung gestartet werden soll.
Die autoexec.bat kann jedoch trotzdem häufig in Windows-NT-Systemen gefunden werden. Das Betriebssystem nutzt in dem Fall nur die als SET angegebenen Befehle, mit denen die Umgebungsvariablen für alle Benutzer eines Rechners eingestellt werden können (alternativ zu Einträgen in der Registry). Umgebungsvariablen in dieser Datei zu setzen, ist zudem eine interessante Option, wenn neben dem Windows-System auch ein DOS-System startet (dies setzt allerdings die Verwendung einer Variante des Dateisystems FAT voraus) oder um die bestehenden Einstellungen auch nach einer Neuinstallation weiterhin zu behalten, also bei einem Wechsel des Betriebssystems (z. B. von DOS oder Windows 9x zu Windows NT). Durch die TweakUI-Anwendung der PowerToys-Sammlung kann diese Funktion kontrolliert werden (Parse Autoexec.bat at logon).
Für den Start des Kommandozeileninterpreters cmd.exe (das Öffnen einer „MS-DOS-Eingabeaufforderung“) kann eine entsprechende Batchdatei in der Registry eingetragen werden, oder dem Programm bei dessen Aufruf als Parameter eine eigene Startdatei /k c:\dos\shell.bat mitgegeben werden (entsprechende shell.bat enthält dann die Befehle).
In 64-Bit-Versionen von Windows ist das „16-Bit MS-DOS Subsystem“ nicht mehr enthalten.

## Andere Betriebssysteme

Andere Betriebssysteme, die nicht auf MS-DOS/IBM PC-DOS beruhen, verwenden andere Autostart-Skriptdateien oder -Mechanismen.