EMZETT.
Login

CMD

Kurz: Die klassische Kommandozeile von Windows (cmd.exe).

Genauer: Deutlich älter und funktional eingeschränkter als das modernere PowerShell, das objektbasiert arbeitet statt nur mit reinem Text. CMD wird aus Kompatibilitätsgründen weiterhin mitgeliefert, für neue Skripte und Automatisierung wird unter Windows heute meist PowerShell bevorzugt.

Im Detail

Herkunft aus MS-DOS

CMD stammt letztlich von COMMAND.COM aus MS-DOS-Zeiten ab und verarbeitet ausschließlich reinen Text — jeder Befehl gibt Zeichenketten aus, die der nächste Befehl in einer Kette wieder als Text interpretieren muss. Ein einfaches CMD-Skript (.bat-Datei):

@echo off
echo Sichere Projektdateien...
xcopy /E /I projekt backup
if %errorlevel% neq 0 (
    echo Fehler beim Kopieren!
    exit /b 1
)

Grenzen der Text-Pipeline

PowerShell löst dieses Text-Limit auf, indem Befehle strukturierte .NET-Objekte statt reinen Text weiterreichen — ein Befehl kann direkt auf einzelne Eigenschaften eines Objekts zugreifen (Get-Process | Where-Object CPU -gt 50), statt Text mühsam per Regex/findstr zu zerlegen, wie es in CMD nötig wäre. Diese Einschränkung, zusammen mit begrenzten Kontrollstrukturen (keine echten Funktionen, nur einfache if/for-Konstrukte mit eigenwilliger Syntax), fehlender objektorientierter Fehlerbehandlung und einer insgesamt kryptischeren Skriptsprache, ist der Hauptgrund, warum CMD heute primär noch für einfache, kurze Automatisierungen oder aus Legacy-Gründen (alte Batch-Skripte, die seit Jahrzehnten unverändert laufen) genutzt wird, während komplexere Windows-Automatisierung fast immer in PowerShell geschrieben wird.

Warum CMD trotzdem überlebt

Trotz seiner Einschränkungen bleibt CMD relevant, weil es extrem stabil und auf jeder Windows-Installation ohne Zusatzkonfiguration verfügbar ist — für schnelle Einzeiler (einen Prozess beenden, eine Datei kopieren) reicht die einfache Syntax oft aus, und viele Legacy-Unternehmensskripte aus den 1990ern/2000ern laufen bis heute unverändert in CMD. Microsoft selbst empfiehlt für neue Projekte klar PowerShell, hält CMD aber aus Kompatibilitätsgründen dauerhaft am Leben — ein ähnliches Muster wie bei vielen anderen “Legacy, aber nicht totzukriegenden” Technologien.

Windows Terminal als moderne Hülle

Seit einigen Jahren bietet Microsoft mit “Windows Terminal” eine moderne Terminal-Anwendung, die CMD, PowerShell und (bei installiertem WSL) Linux-Shells in Tabs innerhalb derselben, deutlich ansprechenderen Oberfläche vereint — das darunterliegende cmd.exe selbst bleibt dabei technisch unverändert, nur die Hülle drumherum wurde modernisiert.

Siehe auch: PowerShell, Shell, Windows