COMMAND.COM

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

COMMAND.COM ist der Kommandozeileninterpreter des Microsoft-Betriebssystems MS-DOS, sowie der darauf basierenden Systeme Microsoft Windows 95, 98, 98 SE und ME.

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[Bearbeiten]

Funktion des Interpreters[Bearbeiten]

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 (eng. Prompt) angezeigt – für gewöhnlich der aktuelle Verzeichnispfad, gefolgt von einem Größer-als-Zeichen und 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 (DR-DOS, PC 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[Bearbeiten]

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.

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[Bearbeiten]

Microsoft Windows[Bearbeiten]

MS-DOS-Eingabeaufforderung[Bearbeiten]

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[Bearbeiten]

Hauptartikel: cmd.exe

Windows NT und alle Nachfolger bis hin zum aktuellen Microsoft-Betriebssystem Windows 8 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 ist cmd.exe kein wichtiger Bestandteil des Betriebssystems und wird nur benötigt, um eine Kommandozeilenoberfläche (Eingabeaufforderung) bereitzustellen und Stapelverarbeitungs­dateien 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[Bearbeiten]

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 Stapelverarbeitungs­dateien aus MS-DOS meist auch ohne Anpassungen korrekt von FreeCOM interpretiert.

Weblinks[Bearbeiten]