AUTOEXEC.BAT

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Autoexec)

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).[1][2] Ab Windows 95 kann sie dank VFAT auch als autoexec.bat klein geschrieben werden. Die AUTOEXEC.BAT wird auch manchmal als „Anpassungsdatei“[3] oder „automatische Startdatei“[4] bezeichnet und gemeinsam mit der CONFIG.SYS als Konfigurationsdatei unter DOS-basierten Betriebssystemen verwendet.[5]

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[6] (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.[7][8] Beide Dateien befinden sich im Stammverzeichnis jenes Startmediums oder jener aktiven Partition, von wo aus das gerade laufende DOS gestartet wurde.[2] Im Gegensatz zur AUTOEXEC.BAT konnten die Anweisungen in der CONFIG.SYS jedoch nicht als Befehle auf der Eingabeaufforderung auch später noch ausgeführt werden.[9]

Auch unter OS/2 wird die AUTOEXEC.BAT für Anpassungen des Systems im DOS-kompatiblen Modus verwendet,[10] 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. Wenn also auf einem PC keine Echtzeituhr (englisch Real Time Clock, RTC) vorhanden ist, aber das DOS-Startmedium eine AUTOEXEC.BAT beinhaltet, sollten die Kommandos DATE und TIME auch in die AUTOEXEC.BAT aufgenommen werden.[11]

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[12] und DR-DOS ab Version 7.03 (März 1999) den Befehl DEVLOAD.[13] 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.[14][15]

Anwendungen, die bei Start der Windowsumgebung ausgeführt werden sollen, verwenden andere Mechanismen (beispielsweise Einträge in der Windows-Registrierungsdatenbank (Registry) 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:

@ECHO OFF
PROMPT $P$G

Wie unter DOS üblich sind die Kommandos nicht case-sensitiv, @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,[16] 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

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:

@ECHO OFF
PROMPT $P$G
PATH C:\DOS;C:\WINDOWS;C:\WINDOWS\SYSTEM;
SET TEMP=C:\TEMP
REM -- Festplattencache:
SMARTDRV.EXE 2038 512
MODE.EXE LPT1:,,P >NUL
SHARE.EXE /F:150 /L:1500
MOUSE.COM /Y
CD \WINDOWS
WIN

Diese Konfiguration legt den Standard-Prompt fest, definiert die Liste der Standardverzeichnisse für die Suche nach ausführbaren Dateien (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.

SHELL=C:\COMMAND.COM /P C:\PCSTART.BAT

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;[17] PTS-DOS nutzt in der Standard-Installation AUTOPTS.BAT (und CONFIG.PTS).[18] 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 starten.[19]

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 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.[20] 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.[21] 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.[22] 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.[23]

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.[24]

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.[20][15][25][26] 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.[27]

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 des FAT-Dateisystems voraus) oder um die Einstellungen auch nach einer Neuinstallation noch zu haben. 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 /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.

Weblinks

Einzelnachweise

  1. a b
  2. Steve Gibson: 7½ Years Later, MS-DOS Configuration Files Are Outdated. In: PC Magazine. Band 12, Nr. 46. Ziff Davis, 12. November 1990, S. 47 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
  3. Steve Gibson: 7½ Years Later, MS-DOS Configuration Files Are Outdated. In: PC Magazine. Band 12, Nr. 46. Ziff Davis, 12. November 1990, S. 47 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “It’s important to understand that the lines that appear in CONFIG.SYS are not themselves executable DOS commands. They’re read and interpreted by DOS during its booting process.”
  4. Manfred Weber: Treiber unter DOS nachladen? (Newsgroup) In: de.comp.os.msdos. 5. November 2004, abgerufen am 17. März 2022 (Diskussion über Möglichkeiten, unter DOS Treiber auch außerhalb der CONFIG.SYS zu laden): „… CTLOAD.COM/CTLOAD.EXE. Dieses Programm lag manchen Soundkartentreibern von Creative Labs bei, damit die Treiber in der DOSSTART.BAT von Windows 95 ("Im MS-DOS-Modus neu starten") geladen werden konnten.“
  5. a b CD-ROM-Treiber unter MS-DOS 7 installieren. In: PC-Welt. Abgerufen am 21. März 2022: „Mit dem Hilfsprogramm CTLOAD.COM von Creative Labs können Sie auch CONFIG.SYS-Devices wie den CD-ROM-Treiber über die DOSSTART.BAT aktivieren.“
  6. Edward Mendelson: How to use 4DOS as a command processor in vDos. In: vDos. SourceForge, 29. Juli 2015, abgerufen am 17. Dezember 2021 (englisch): „When you start 4DOS, it automatically runs a batch file named 4START.BTM if that file exists! You can use 4START.BTM as an Autoexec.bat for 4DOS. You can also run 4dos mybatch.bat and 4DOS will run mybatch.bat AFTER running 4START.BTM if 4START.BTM exists.“
  7. PTS-DOS 2000 Pro – User Manual. (PDF; 382K) Paragon Technology GmbH, 2002, abgerufen am 17. Dezember 2021 (englisch): „CONFIGURATION FILE CONFIG.PTS … SHELL = C:\PTSDOS\command.com C:\PTSDOS /p C:\AUTOPTS.BAT
  8. Joe Salemi: Demystifying CONFIG.SYS in OS/2 2.0, Part 1. In: PC Magazine. Band 12, Nr. 4. Ziff Davis, 23. Februar 1993, S. 330 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “The function of STARTUP.CMD is similar to that of the DOS AUTOEXEC.BAT, in that it can load network drivers and start OS/2 applications automatically. Each DOS and Windows session under OS/2 can also have its own individual version of AUTOEXEC.BAT, which is used to load programs and set configuration options that apply only to that session.”
  9. a b Winstart und Dosstart: Die stillen Batchdateien. In: PC-Welt. Abgerufen am 18. März 2022.
  10. Q51737: Expanded Memory under Windows 3.0. In: KnowledgeBase Archive. Microsoft, 5. Oktober 1999, abgerufen am 20. März 2022 (englisch).
  11. Configuring an MS Windows Workstation for Btrieve. Madis Kaal, 2000, abgerufen am 20. März 2022 (englisch): „The programs that are started from within the WINSTART.BAT file are loaded in enhanced mode and are available to MS Windows applications, but not to DOS sessions started in MS Windows.“
  12. Some TSRs Moved from Autoexec.bat to Winstart.bat During Setup. (Nicht mehr online verfügbar.) Microsoft, 17. Dezember 2000, archiviert vom Original am 27. August 2001; abgerufen am 20. März 2022 (englisch).
  13. Windows 3.1x Tips & Tricks. In: win31.de. Gaby Chaudry, abgerufen am 20. März 2022: „Windows ohne GUI starten – Es gibt die Möglichkeit, den Windows-Startvorgang mit einer Datei winstart.bat im Windows-Verzeichnis anzuhalten und im DOS-Modus ohne GUI weiterzuarbeiten. Ein eventuell installiertes Netzwerk ist hier schon vollständig verfügbar. Die winstart.bat funktioniert wie die autoexec.bat. Alle Befehle werden vor dem Starten der graphischen Oberfläche nacheinander ausgeführt. Man kann z. B. als einzigen Befehl command.com eintragen und bekommt den MS-DOS-Prompt. Mit exit kann man den Prompt wieder schließen, und der Windows-Startvorgang wird fortgeführt. Vielen Dank an Marco Schlichting für diesen Tipp!
  14. Hajo Schulz: DOSSTART.BAT. In: Heise online. 10. September 1999. Abgerufen am 18. März 2022.
  15. Winstart und Dosstart: Die stillen Batchdateien. In: PC-Welt. Abgerufen am 18. März 2022.
  16. Fehlermeldung „16-Bit MS-DOS Subsystem“ beim Ausführen eines MS-DOS- oder 16-Bit-Windows-Programms in Windows Server 2003 oder Windows 2000 Server. In: Support. Microsoft, abgerufen am 1. April 2020.