Zum Inhalt springen

„COMMAND.COM“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Form und Überarbeitung #1
Zeile 1: Zeile 1:
Die '''COMMAND.COM''' ist die [[Betriebssystem-Shell]] der [[Betriebssystem]]e [[MS-DOS]] und [[PC-DOS]] sowie der darauf aufbauenden [[Microsoft Windows|Windows]]-Systeme der [[Windows 9x|Windows-9x]]-Reihe.
Die '''<span style="font-family: monospace, monospace;">COMMAND.COM</span>''' ist die [[Shell (Betriebssystem)|Shell]] der [[Betriebssystem]]e [[MS-DOS]] und [[PC&nbsp;DOS]] sowie der darauf aufbauenden [[Microsoft Windows|Windows]]-Systeme der [[Windows 9x|Windows-9x]]-Reihe.


Die <code>COMMAND.COM</code> 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|DR&nbsp;DOS]] mitlieferte. Es gibt auch Varianten wie [[4DOS]], die nicht Bestandteil eines Betriebssystems sind, sondern den Interpreter eines Systems ersetzen und erweiterte Funktionen bieten.
Die [[Programmdatei]] <code>COMMAND.COM</code> wurde von [[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|DR&nbsp;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 und Befehle ==
=== Funktion des Interpreters ===
=== Funktion des Interpreters ===
Funktionell entspricht die <span style="font-family: monospace, monospace;">COMMAND.COM</span> dem ''{{lang|en|Console Command Processor}}'' (CCP) von [[CP/M]], welches Tim Paterson bei der Entwicklung von 86-DOS als Vorbild diente. In dieser Funktion bildet <code>COMMAND.COM</code> in [[MS-DOS]] und dazu [[PC-kompatibles DOS|dazu kompatiblen DOS]] als [[Kommandozeileninterpreter]] die im Betriebssystem enthaltene Schnittstelle zum [[Benutzer]]. <span style="font-family: monospace, monospace;">COMMAND.COM</span> interpretiert die Eingabe des Benutzers und führt daraufhin interne [[Befehl (Computer)|Kommandos]] aus oder versucht, ein anderes [[Computerprogramm|Programm]] aufzurufen. Ebenfalls von <span style="font-family: monospace, monospace;">COMMAND.COM</span> wird deswegen die für DOS typische [[Prompt|Eingabeaufforderung]] ({{enS|Prompt}}) angezeigt – für gewöhnlich der [[Arbeitsverzeichnis|aktuelle Verzeichnispfad]], gefolgt von einem Größer-als-Zeichen, im Standard-Textmodus Weiß auf Schwarz.


Da die <span style="font-family: monospace, monospace;">COMMAND.COM</span> ''nicht'' Teil des DOS-[[Kernel (Betriebssystem)|Kernel]]s, <span style="font-family: monospace, monospace;">[[MSDOS.SYS]]</span> bei MS-DOS, sondern als eigenes Programm ausgeführt ist, könnte ein DOS-System theoretisch auch ohne <span style="font-family: monospace, monospace;">COMMAND.COM</span> oder Entsprechung genutzt werden; ohne jede Eingabemöglichkeit oder ausreichende Automatisierung hätte dies aber keinen sinnvollen Nutzen. In späteren DOS-Versionen ist <span style="font-family: monospace, monospace;">COMMAND.COM</span> austauschbar: durch Angabe von <code>SHELL=</code> in der <span style="font-family: monospace, monospace;">[[CONFIG.SYS]]</span> kann die primäre Shell nicht nur durch einen anderen Kommandozeileninterpreter ersetzt werden, sondern prinzipiell durch jedes unter DOS ausführbare Programm (vgl. [[Kiosk-Modus]]). Eine andere Variante, die <span style="font-family: monospace, monospace;">COMMAND.COM</span> zu ersetzen, besteht darin, lediglich dem Alternativprogramm diesen Namen zu geben – das System führt dann weiterhin die Datei <code>COMMAND.COM</code> aus, und zu merken, dass eigentlich die gewünschte Alternative ausgeführt wird. (Da sich die Ausführung einer [[COM-Datei|<span style="font-family: monospace, monospace;">COM</span>-]] und einer [[EXE|<span style="font-family: monospace, monospace;">EXE</span>-Datei]] nicht unterscheiden, stört es nicht, wenn der Name des anderen Programms ursprünglich die Dateiendung <code>.EXE</code> hatte.)
Die Funktion der <code>COMMAND.COM</code> in [[MS-DOS]] und Kompatiblen ist, die grundlegende und früher einzige im Betriebssystem enthaltene Schnittstelle zum Benutzer zu bilden. <code>COMMAND.COM</code> interpretiert die Eingabe des Benutzers und führt daraufhin Befehle aus oder versucht, ein anderes Programm aufzurufen. Ebenfalls von <code>COMMAND.COM</code> wird deswegen die für DOS typische [[Prompt|Eingabeaufforderung]] ({{enS|Prompt}}) angezeigt – für gewöhnlich der aktuelle Verzeichnispfad, gefolgt von einem Größer-als-Zeichen, im Standard-Textmodus Weiß auf Schwarz.


Wenn in der <span style="font-family: monospace, monospace;">CONFIG.SYS</span> nicht anderes angegeben ist, führt die <span style="font-family: monospace, monospace;">COMMAND.COM</span> bei ihrem ersten Aufruf automatisch <code>[[AUTOEXEC.BAT]]</code> aus, falls die Datei vorhanden ist.
Da die <code>COMMAND.COM</code> ''nicht'' Teil des [[Kernel (Betriebssystem)|Kernel]]s, sondern als eigenes Programm ausgeführt ist, könnte ein DOS-System theoretisch auch ohne <code>COMMAND.COM</code> 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 <code>[[MSDOS.SYS]]</code> (MS-DOS), <code>[[IBMDOS.COM]]</code> (PC&nbsp;DOS, DR-DOS) oder <code>[[IO.SYS]]</code> ([[Windows&nbsp;9x]]) verarbeiteten Datei <code>[[CONFIG.SYS]]</code> die Option <code>shell</code> angegeben wurde. Eine andere Variante, die <code>COMMAND.COM</code> 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|<code>COM</code>-Datei]] und einer [[EXE|<code>EXE</code>-Datei]] sich nicht unterscheiden, stört es nicht, wenn der Name des anderen Programms ursprünglich die Dateiendung <code>.EXE</code> hatte.

<code>COMMAND.COM</code> führt bei ihrem ersten Aufruf <code>[[AUTOEXEC.BAT]]</code> aus.


=== Aufbau von Befehlen ===
=== Aufbau von Befehlen ===
Bei den für <span style="font-family: monospace, monospace;">COMMAND.COM</span> verfügbaren Befehlen bzw. Kommandos wird zwischen internen und externen Kommandos unterschieden. Als interne Kommandos werden die im [[Kommandozeileninterpreter]] selbst enthaltenen Befehle bezeichnet; externe Kommandos hingegen sind eigenständige Programme, die aus eigenen Programmdateien (ausführbare <span style="font-family: monospace, monospace;">COM</span>- oder <span style="font-family: monospace, monospace;">EXE</span>-Dateien) bestehen.


Die <span style="font-family: monospace, monospace;">COMMAND.COM</span> von MS-DOS 5.0, eingeführt im Sommer 1991, kennt 29 interne Befehle.<ref>{{Webarchiv|url=support.microsoft.com/en-us/kb/71986|text=MS-DOS 5.0 Internal and External Commands|wayback=20150602080825}}; englisch</ref><ref>{{internetquelle|url=//www.cbronline.com/news/microsoft_takes_five_for_launch_of_ms_dos_50_release|titel=Microsoft takes Five for Launch of MS-DOS 5.0 Release|werk=Computer Business Review|datum=1991-06-11|zugriff=2019-07-18|sprache=englisch}}</ref>
Bei den für <code>COMMAND.COM</code> 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 [[Computerprogramm|Programme]], die aus eigenen Programmdateien (ausführbare <code>.COM</code>- oder <code>.EXE</code>-Dateien) bestehen.


Zu den [[ausführbare Datei|ausführbaren Dateien]] kommen die vom Kommandozeileninterpreter <span style="font-family: monospace, monospace;">COMMAND.COM</span> unterstützten [[Stapelverarbeitungsdatei]]en hinzu, auch ''{{lang|en|Batch}}''-Dateien oder ''{{lang|en|Batches}}'' genannt, mit der Dateinamenserweiterung <code>.BAT</code>. Die darin enthaltenen Zeilen werden vom Kommandozeileninterpreter nacheinander – wie von einen „Stapel“ – abgearbeitet. Stapelverarbeitungen können alle auch auf der [[Kommandozeile]] (dem „{{lang|en|Prompt}}“ bzw. der Eingabeaufforderung) möglichen Eingaben, auch alle internen oder externen Kommandos, enthalten. Damit verhalten sich Stapelverarbeitungsdateien wie „echte Programme“ und werden oft auch so aufgerufen, sind aber den [[Interpreter]]-[[Skriptsprache]]n zuzuordnen.
Die <code>COMMAND.COM</code> von MS-DOS 5.0, eingeführt im Sommer 1991, kennt 29 interne Befehle.<ref>{{Webarchiv|url=support.microsoft.com/en-us/kb/71986|text=MS-DOS 5.0 Internal and External Commands|wayback=20150602080825}}; englisch</ref><ref>{{internetquelle|url=//www.cbronline.com/news/microsoft_takes_five_for_launch_of_ms_dos_50_release|titel=Microsoft takes Five for Launch of MS-DOS 5.0 Release|werk=Computer Business Review|datum=1991-06-11|zugriff=2019-07-18|sprache=englisch}}</ref>


Ein Kommando wird aufgerufen, indem der Name dieses Kommandos eingegeben wird. Sobald die Befehlseingabe mit der Eingabetaste (''Enter'' oder ''Return'') beendet wurde, sucht <span style="font-family: monospace, monospace;">COMMAND.COM</span> nach einem passenden internen Befehl. Wird kein interner Befehl gefunden, so wird zunächst im aktuellen Verzeichnis, dem [[Arbeitsverzeichnis]], nach ausführbaren Dateien gesucht, die den eingegebenen Befehl als Dateinamen tragen, wobei die Dateinamenserweiterung weggelassen werden kann. Falls so kein passendes Programm gefunden wurde, wird zuletzt jeder Ordner im [[Suchpfad]] (engl. <code>PATH</code>) durchsucht. Das erste gegebenenfalls gefundene Programm wird ausgeführt, andernfalls wird eine Fehlermeldung angezeigt, und die [[Eingabeaufforderung]] erscheint wieder.
Außerdem gibt es noch sogenannte [[Microsoft Batch|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 [[Skriptsprache|Skripten]] zuzuordnen.


Kommandos können entweder einzeln oder gefolgt von (auch als ''Argumente'' bekannten) sogenannten [[Kommandozeilenparameter]]n 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 <code>/?</code>. 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 [[Grafische Benutzeroberfläche|grafischen Benutzeroberflächen]], die von der DOS-Kommandozeilenoberfläche gestartet werden können, zum Beispiel [[Microsoft Windows|Windows]] 1.x bis [[Windows 3.x|3.x]] (in Windows 4.x ist MS-DOS, und damit auch die <span style="font-family: monospace, monospace;">COMMAND.COM</span>, integriert) oder die Versionen von [[Graphical Environment Manager|GEM]] für DOS.
Ein Befehl wird aufgerufen, indem der Name dieses Befehls eingegeben wird. Sobald die Befehlseingabe mit der Eingabetaste (''Enter'' oder ''Return'') beendet wurde, sucht <code>COMMAND.COM</code> 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 [[Parameter (Informatik)#Befehlszeilenparameter|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 [[Grafische Benutzeroberfläche|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 [[Graphical Environment Manager|GEM]] für DOS.


Unter MS-DOS 6.22 beträgt die maximale Länge eines Befehls in der [[Eingabeaufforderung]] 127 Zeichen.
Unter MS-DOS 6.22 beträgt die maximale Länge eines Befehls in der [[Eingabeaufforderung]] 127 Zeichen.
Zeile 31: Zeile 29:
=== Microsoft Windows ===
=== Microsoft Windows ===
==== MS-DOS-Eingabeaufforderung ====
==== MS-DOS-Eingabeaufforderung ====

Unter den inzwischen veralteten [[Microsoft Windows#DOS-Linie für 16-Bit-Rechner|DOS-basierten Windows-Versionen]] wird die <code>COMMAND.COM</code> 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.
Unter den inzwischen veralteten [[Microsoft Windows#DOS-Linie für 16-Bit-Rechner|DOS-basierten Windows-Versionen]] wird die <code>COMMAND.COM</code> 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.


Zeile 37: Zeile 34:


==== cmd.exe ====
==== cmd.exe ====

{{Hauptartikel|cmd.exe}}
{{Hauptartikel|cmd.exe}}


Zeile 45: Zeile 41:


=== FreeCOM ===
=== 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 <code>cmd.exe</code> bietet auch FreeCOM einige Erweiterungen zum MS-DOS-Interpreter, ist dabei aber mehr auf Kompatibilität ausgerichtet. So werden beispielsweise [[Stapelverarbeitung]]s<nowiki/>dateien aus MS-DOS meist auch ohne Anpassungen korrekt von FreeCOM interpretiert.
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 <code>cmd.exe</code> bietet auch FreeCOM einige Erweiterungen zum MS-DOS-Interpreter, ist dabei aber mehr auf Kompatibilität ausgerichtet. So werden beispielsweise [[Stapelverarbeitung]]s<nowiki/>dateien aus MS-DOS meist auch ohne Anpassungen korrekt von FreeCOM interpretiert.


Zeile 56: Zeile 51:


== Einzelnachweise ==
== Einzelnachweise ==
<!-- … und Anmerkungen: -->

… und Anmerkungen:

<references/>
<references/>



Version vom 3. August 2023, 15:30 Uhr

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

Die Programmdatei COMMAND.COM wurde von 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

Funktionell entspricht die COMMAND.COM dem Console Command Processor (CCP) von CP/M, welches Tim Paterson bei der Entwicklung von 86-DOS als Vorbild diente. In dieser Funktion bildet COMMAND.COM in MS-DOS und dazu dazu kompatiblen DOS als Kommandozeileninterpreter die im Betriebssystem enthaltene Schnittstelle zum Benutzer. COMMAND.COM interpretiert die Eingabe des Benutzers und führt daraufhin interne Kommandos 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 DOS-Kernels, MSDOS.SYS bei MS-DOS, 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. In späteren DOS-Versionen ist COMMAND.COM austauschbar: durch Angabe von SHELL= in der CONFIG.SYS kann die primäre Shell nicht nur durch einen anderen Kommandozeileninterpreter ersetzt werden, sondern prinzipiell durch jedes unter DOS ausführbare Programm (vgl. Kiosk-Modus). Eine andere Variante, die COMMAND.COM zu ersetzen, besteht darin, lediglich dem Alternativprogramm diesen Namen zu geben – das System führt dann weiterhin die Datei COMMAND.COM aus, und zu merken, dass eigentlich die gewünschte Alternative ausgeführt wird. (Da sich die Ausführung einer COM- und einer EXE-Datei nicht unterscheiden, stört es nicht, wenn der Name des anderen Programms ursprünglich die Dateiendung .EXE hatte.)

Wenn in der CONFIG.SYS nicht anderes angegeben ist, führt die COMMAND.COM bei ihrem ersten Aufruf automatisch AUTOEXEC.BAT aus, falls die Datei vorhanden ist.

Aufbau von Befehlen

Bei den für COMMAND.COM verfügbaren Befehlen bzw. Kommandos wird zwischen internen und externen Kommandos unterschieden. Als interne Kommandos werden die im Kommandozeileninterpreter selbst enthaltenen Befehle bezeichnet; externe Kommandos 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]

Zu den ausführbaren Dateien kommen die vom Kommandozeileninterpreter COMMAND.COM unterstützten Stapelverarbeitungsdateien hinzu, auch Batch-Dateien oder Batches genannt, mit der Dateinamenserweiterung .BAT. Die darin enthaltenen Zeilen werden vom Kommandozeileninterpreter nacheinander – wie von einen „Stapel“ – abgearbeitet. Stapelverarbeitungen können alle auch auf der Kommandozeile (dem „Prompt“ bzw. der Eingabeaufforderung) möglichen Eingaben, auch alle internen oder externen Kommandos, enthalten. Damit verhalten sich Stapelverarbeitungsdateien wie „echte Programme“ und werden oft auch so aufgerufen, sind aber den Interpreter-Skriptsprachen zuzuordnen.

Ein Kommando wird aufgerufen, indem der Name dieses Kommandos 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, dem Arbeitsverzeichnis, nach ausführbaren Dateien gesucht, die den eingegebenen Befehl als Dateinamen tragen, wobei die Dateinamenserweiterung weggelassen werden kann. Falls so kein passendes Programm gefunden wurde, wird zuletzt jeder Ordner im Suchpfad (engl. PATH) durchsucht. Das erste gegebenenfalls gefundene Programm wird ausgeführt, andernfalls wird eine Fehlermeldung angezeigt, und die Eingabeaufforderung erscheint wieder.

Kommandos können entweder einzeln oder gefolgt von (auch als Argumente bekannten) sogenannten Kommandozeilenparametern 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 Windows 1.x bis 3.x (in Windows 4.x ist MS-DOS, und damit auch die COMMAND.COM, integriert) 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.

Einzelnachweise

  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).