„COMMAND.COM“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
→Funktion des Interpreters: klingt besser ohne und, der Textmodus gehört ja nicht zum Prompt selber, mit dem "und" klang es so als ob die aufzählung von zeichen fortgesetzt wird... |
Y2kbug (Diskussion | Beiträge) →cmd.exe: aktuelles Windows: Windows 11 |
||
Zeile 40: | Zeile 40: | ||
{{Hauptartikel|cmd.exe}} |
{{Hauptartikel|cmd.exe}} |
||
[[Microsoft Windows NT|Windows NT]] und alle Nachfolger bis hin zum aktuellen Microsoft-Betriebssystem [[Microsoft Windows |
[[Microsoft Windows NT|Windows NT]] und alle Nachfolger bis hin zum aktuellen Microsoft-Betriebssystem [[Microsoft Windows 11|Windows 11]] setzen einen neuen, leistungsfähigeren und weitgehend abwärtskompatiblen [[Kommandozeileninterpreter]] namens <code>[[cmd.exe]]</code> ein. Viele in der ursprünglichen <code>COMMAND.COM</code> fehlende Funktionen, die früher nur durch Programme von Drittherstellern bereitgestellt werden konnten, sind in <code>cmd.exe</code> enthalten. So können zum Beispiel einfache Berechnungen durchgeführt werden, und das Entfernen bestimmter Zeichen aus einer [[Umgebungsvariable|Variable]] ist möglich. Zudem wird die <code>cmd.exe</code> mit der fortschreitenden Entwicklung von Windows-NT-basierten Betriebssystemen ebenfalls noch weiterentwickelt, während die <code>COMMAND.COM</code> von Microsoft (zumindest als Standard-Kommandozeileninterpreter) in [[Microsoft Windows Millennium Edition|Windows ME]] ihr endgültig letztes Auftreten hatte. Im Gegensatz zu <code>COMMAND.COM</code> bei [[MS-DOS]] und Kompatiblen wird <code>cmd.exe</code> nur benötigt, um Kommandozeilenbefehle in der [[Kommandozeile|Konsole]], bereitgestellt durch <code>conhost.exe</code>, entgegenzunehmen und [[Stapelverarbeitung]]s<nowiki />dateien auszuführen. |
||
Neben dem Standard-Kommandozeileninterpreter <code>cmd.exe</code> bieten Windows NT und Nachfolger – sofern auf 32-Bit-Basis implementiert – allerdings auch noch einen kompatibleren Ersatz-Interpreter, der ebenfalls <code>COMMAND.COM</code> heißt. Zwar erfüllt er die gleiche Funktion wie die <code>COMMAND.COM</code> aus MS-DOS und älteren Windows-Versionen, ist aber eine richtige Windows-Anwendung. Alle 16-Bit-Funktionen werden durch <code>COMMAND.COM</code> und die virtuelle DOS-Umgebung (eng. ''[[Virtual DOS Machine]]'', abgekürzt VDM) lediglich bereitgestellt. Nachteilig wirkt sich aus, dass die <code>COMMAND.COM</code> 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. |
Neben dem Standard-Kommandozeileninterpreter <code>cmd.exe</code> bieten Windows NT und Nachfolger – sofern auf 32-Bit-Basis implementiert – allerdings auch noch einen kompatibleren Ersatz-Interpreter, der ebenfalls <code>COMMAND.COM</code> heißt. Zwar erfüllt er die gleiche Funktion wie die <code>COMMAND.COM</code> aus MS-DOS und älteren Windows-Versionen, ist aber eine richtige Windows-Anwendung. Alle 16-Bit-Funktionen werden durch <code>COMMAND.COM</code> und die virtuelle DOS-Umgebung (eng. ''[[Virtual DOS Machine]]'', abgekürzt VDM) lediglich bereitgestellt. Nachteilig wirkt sich aus, dass die <code>COMMAND.COM</code> 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. |
Version vom 13. April 2022, 10:57 Uhr
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
- c't 16/2003, S. 136: Windows-Befehlszeile ( vom 18. März 2004 im Internet Archive) – Einführung zur Windows-Eingabeaufforderung
- FreeCOM-Übersicht (englisch) – Kommandozeileninterpreter von FreeDOS, der noch weiter entwickelt wird
- Antonis.de – Tutorials und Links zu DOS und Batchdateien
Einzelnachweise
… und Anmerkungen:
- ↑ MS-DOS 5.0 Internal and External Commands ( vom 2. Juni 2015 im Internet Archive); englisch
- ↑ Microsoft takes Five for Launch of MS-DOS 5.0 Release. In: Computer Business Review. 11. Juni 1991, abgerufen am 18. Juli 2019 (englisch).