COMMAND.COM

aus Wikipedia, der freien Enzyklopädie

Die COMMAND.COM ist die Betriebssystem-Shell der Betriebssysteme MS-DOS und PC-DOS sowie der darauf aufbauenden Windows-Systeme der Windows-9x-Reihe.

Die COMMAND.COM wurde durch Tim Paterson in 86-DOS eingeführt, welches von Microsoft übernommen worden ist. Neben der Variante von Microsoft gab oder gibt es auch Entsprechungen in den MS-DOS-kompatiblen Betriebssystemen, darunter etwa das bis heute weiterentwickelte FreeCOM aus dem quelloffenen Projekt FreeDOS oder der Kommandozeileninterpreter, den der ehemalige Microsoft-Konkurrent Digital Research mit seinem DR DOS mitlieferte. Es gibt auch Varianten wie 4DOS, die nicht Bestandteil eines Betriebssystems sind, sondern den Interpreter eines Systems ersetzen und erweiterte Funktionen bieten.

Funktion und Befehle

Funktion des Interpreters

Die Funktion der COMMAND.COM in MS-DOS und Kompatiblen ist, die grundlegende – und früher einzige im Betriebssystem enthaltene – Schnittstelle zum Benutzer zu bilden. COMMAND.COM interpretiert die Eingabe des Benutzers und führt daraufhin Befehle aus oder versucht, ein anderes Programm aufzurufen. Ebenfalls von COMMAND.COM wird deswegen die für DOS typische Eingabeaufforderung (englisch Prompt) angezeigt – für gewöhnlich der aktuelle Verzeichnispfad, gefolgt von einem Größer-als-Zeichen, im Standard-Textmodus Weiß auf Schwarz.

Da die COMMAND.COM nicht Teil des Kernels, sondern als eigenes Programm ausgeführt ist, könnte ein DOS-System theoretisch auch ohne COMMAND.COM oder Entsprechung genutzt werden; ohne jede Eingabemöglichkeit oder ausreichende Automatisierung hätte dies aber keinen sinnvollen Nutzen. Teilweise boten neuere DOS-Versionen direkt die Möglichkeit, eine Konfiguration ohne (Standard-)Interpreter zu wählen; beispielsweise, indem in der von MSDOS.SYS (MS-DOS), IBMDOS.COM (PC DOS, DR-DOS) oder IO.SYS (Windows 9x) verarbeiteten Datei CONFIG.SYS die Option shell angegeben wurde. Eine andere Variante, die COMMAND.COM zu ersetzen, besteht darin, lediglich dem Alternativprogramm diesen Namen zu geben – das System führt dann die gewünschte Alternative aus, ohne den Unterschied zu merken. Da die Ausführung einer COM-Datei und einer EXE-Datei sich nicht unterscheiden, stört es nicht, wenn der Name des anderen Programms ursprünglich die Dateiendung .EXE hatte.

COMMAND.COM führt bei ihrem ersten Aufruf AUTOEXEC.BAT aus.

Aufbau von Befehlen

Bei den für COMMAND.COM verfügbaren Befehlen wird zwischen internen und externen Befehlen unterschieden. Als interne Befehle werden die im Kommandozeileninterpreter selbst enthaltenen Befehle bezeichnet; externe Befehle hingegen sind eigenständige Programme, die aus eigenen Programmdateien (ausführbare .COM- oder .EXE-Dateien) bestehen.

Die COMMAND.COM von MS-DOS 5.0, eingeführt im Sommer 1991, kennt 29 interne Befehle.[1][2]

Außerdem gibt es noch sogenannte Stapelverarbeitungsdateien, auch Batchdateien oder Batches genannt, die einen „Stapel“ von nacheinander abzuarbeitenden – nach Belieben internen oder externen – Befehlen enthalten. Stapelverarbeitungsdateien können sich wie ein echtes Programm oder ein echter Befehl verhalten und werden oft auch so aufgerufen; sie sind aber den Skripten zuzuordnen.

Ein Befehl wird aufgerufen, indem der Name dieses Befehls eingegeben wird. Sobald die Befehlseingabe mit der Eingabetaste (Enter oder Return) beendet wurde, sucht COMMAND.COM nach einem passenden internen Befehl. Wird kein interner Befehl gefunden, so wird zunächst im aktuellen Verzeichnis nach ausführbaren Dateien gesucht, die den eingegebenen Befehl als Dateinamen tragen. Falls so kein passendes Programm gefunden wurde, wird zuletzt jeder Ordner im „Pfad“ durchsucht. Das erste gegebenenfalls gefundene Programm wird ausgeführt, andernfalls wird eine Fehlermeldung angezeigt, und die Eingabeaufforderung erscheint wieder.

Befehle können entweder einzeln oder gefolgt von (auch als Argumente bekannten) sogenannten Parametern aufgerufen werden. Diese Parameter werden je nach Befehl oder Programm unterschiedlich interpretiert und können verschiedenste Optionen festlegen. Ein Parameter (manchmal auch Schalter genannt), den fast jeder Befehl in DOS kennt, und der für gewöhnlich eine kurze Direkthilfe ausgibt, lautet beispielsweise /?. Im Gegensatz zu Programmen, die sich nur über Parameter steuern lassen, gibt es auch solche, die ohne Parameter aufgerufen werden und dem Benutzer danach selbst die nötigen Eingabemöglichkeiten bieten. Dazu zählen auch die verschiedenen grafischen Benutzeroberflächen, die von der DOS-Kommandozeilenoberfläche gestartet werden können, zum Beispiel Microsoft Windows 1.x bis 4.x oder die Versionen von GEM für DOS.

Unter MS-DOS 6.22 beträgt die maximale Länge eines Befehls in der Eingabeaufforderung 127 Zeichen.

Andere Verwendung und Zukunft

Microsoft Windows

MS-DOS-Eingabeaufforderung

Unter den inzwischen veralteten DOS-basierten Windows-Versionen wird die COMMAND.COM aus dem sowieso benötigten DOS-System (welches ab Windows 95 auch enthalten ist) dazu benutzt, eine Eingabeaufforderung in einem „Fenster“ der Benutzeroberfläche bereitzustellen. Zwar ist dem zugrundeliegenden DOS-Betriebssystem kein Alleinzugriff auf die Hardware mehr möglich, es können aber noch alle Funktionen des Interpreters uneingeschränkt genutzt werden.

Microsoft nannte diese Kommandozeilenoberfläche damals MS-DOS-Eingabeaufforderung, allerdings ist der Begriff fälschlicherweise auch heute noch vielen Anwendern ein Synonym für textbasierte Eingaben in Windows-Betriebssystemen.

cmd.exe

Windows NT und alle Nachfolger bis hin zum aktuellen Microsoft-Betriebssystem Windows 11 setzen einen neuen, leistungsfähigeren und weitgehend abwärtskompatiblen Kommandozeileninterpreter namens cmd.exe ein. Viele in der ursprünglichen COMMAND.COM fehlende Funktionen, die früher nur durch Programme von Drittherstellern bereitgestellt werden konnten, sind in cmd.exe enthalten. So können zum Beispiel einfache Berechnungen durchgeführt werden, und das Entfernen bestimmter Zeichen aus einer Variable ist möglich. Zudem wird die cmd.exe mit der fortschreitenden Entwicklung von Windows-NT-basierten Betriebssystemen ebenfalls noch weiterentwickelt, während die COMMAND.COM von Microsoft (zumindest als Standard-Kommandozeileninterpreter) in Windows ME ihr endgültig letztes Auftreten hatte. Im Gegensatz zu COMMAND.COM bei MS-DOS und Kompatiblen wird cmd.exe nur benötigt, um Kommandozeilenbefehle in der Konsole, bereitgestellt durch conhost.exe, entgegenzunehmen und Stapelverarbeitungsdateien auszuführen.

Neben dem Standard-Kommandozeileninterpreter cmd.exe bieten Windows NT und Nachfolger – sofern auf 32-Bit-Basis implementiert – allerdings auch noch einen kompatibleren Ersatz-Interpreter, der ebenfalls COMMAND.COM heißt. Zwar erfüllt er die gleiche Funktion wie die COMMAND.COM aus MS-DOS und älteren Windows-Versionen, ist aber eine richtige Windows-Anwendung. Alle 16-Bit-Funktionen werden durch COMMAND.COM und die virtuelle DOS-Umgebung (eng. Virtual DOS Machine, abgekürzt VDM) lediglich bereitgestellt. Nachteilig wirkt sich aus, dass die COMMAND.COM aus Windows NT dem Interpreter aus den MS-DOS-Versionen 5 und 6 mehr entspricht, als dem, der in Windows 95, 98 und Me zum Einsatz kam. Damit gehen auch einige Verbesserungen verloren, zum Beispiel die mögliche Nutzung von langen Dateinamen mit mehr als acht Zeichen und Dateiendungen mit mehr als drei Zeichen.

FreeCOM

Im Betriebssystem FreeDOS ist der Kommandozeileninterpreter FreeCOM enthalten. FreeCOM und FreeDOS werden – im Gegensatz zu MS-DOS, DR-DOS und den meisten anderen DOS-Betriebssystemen und/oder -Kommandozeileninterpretern – noch immer weiterentwickelt. Ähnlich cmd.exe bietet auch FreeCOM einige Erweiterungen zum MS-DOS-Interpreter, ist dabei aber mehr auf Kompatibilität ausgerichtet. So werden beispielsweise Stapelverarbeitungsdateien aus MS-DOS meist auch ohne Anpassungen korrekt von FreeCOM interpretiert.

Weblinks

Einzelnachweise

… und Anmerkungen:

  1. MS-DOS 5.0 Internal and External Commands (Memento vom 2. Juni 2015 im Internet Archive); englisch
  2. Microsoft takes Five for Launch of MS-DOS 5.0 Release. In: Computer Business Review. 11. Juni 1991, abgerufen am 18. Juli 2019 (englisch).