- 1 Section
- 10 Lessons
- unbegrenzt
- CMD – Windows-Kommandozeile10
- 1.1CMD vs. PowerShell vs. WSL
- 1.2Navigation: cd, dir, md, rd, tree
- 1.3Dateioperationen: copy, move, del, ren, type
- 1.4Netzwerkbefehle: ipconfig, ping, tracert, nslookup
- 1.5Systeminformationen: systeminfo, tasklist, taskkill
- 1.6Batch-Scripting: Grundstruktur und Variablen
- 1.7Batch: Schleifen und Bedingungen
- 1.8Erweiterte Netzwerkdiagnose: arp, route, netsh
- 1.9Benutzer und Rechte: net user, net localgroup
- 1.10Praxisszenarien: Troubleshooting mit CMD
CMD vs. PowerShell vs. WSL
Wenn du heute auf Windows arbeitest, hast du gleich drei verschiedene Kommandozeilen zur Auswahl: CMD (die klassische Eingabeaufforderung), PowerShell (der moderne Nachfolger) und WSL (Linux auf Windows). Alle drei haben ihre Berechtigung, ihre Einsatzgebiete – und ihre Eigenheiten. Wer als FISI in einer Windows-Umgebung arbeitet, sollte alle drei kennen.
In dieser Lektion klären wir was wann: wozu brauchst du noch CMD wenn es PowerShell gibt? Was ist eigentlich WSL? Und warum existieren so viele Tools nur unter cmd.exe? Die Antworten sind oft überraschend pragmatisch.
1) Was ist CMD?
Die Eingabeaufforderung (Command Prompt, kurz CMD) ist Microsofts älteste textbasierte Schnittstelle für Windows. Ihre Wurzeln reichen zurück bis ins Jahr 1981: damals war MS-DOS das eigentliche Betriebssystem, und sein Befehls-Interpreter command.com war die einzige Möglichkeit den Rechner zu steuern. Mit Windows 95 wurde DOS schrittweise verdrängt, aber die Kommandozeile blieb. Seit Windows NT (1993) heißt sie cmd.exe – ein modernisierter Befehls-Interpreter mit (etwas) mehr Funktionen.
Heute ist CMD primär aus Kompatibilitätsgründen noch da. Microsoft empfiehlt offiziell PowerShell für alles Moderne. Aber Tausende von Batch-Skripten (.bat / .cmd-Dateien) in Unternehmen laufen seit Jahrzehnten zuverlässig, und viele Tools (oft auch Microsoft-eigene) erwarten klassische CMD-Befehle. Darum bleibt CMD relevant – und ein FISI sollte beide Welten beherrschen.
So sieht die CMD aus: schwarzer Hintergrund, weiße Schrift, der typische Prompt mit aktuellem Pfad und >. Starten kannst du sie mit Windows-Taste → „cmd" eintippen → Enter. Für Admin-Rechte: Rechtsklick → „Als Administrator ausführen". Im Titel siehst du dann „Administrator:" vorangestellt.
2) Die drei Shells im Vergleich
Klick eine Shell an um zu sehen wie sie sich verhält. Wir nehmen die gleiche Aufgabe – eine einfache Datei-Auflistung – und schauen wie jede Shell sie löst:
3) Wann nehme ich was?
Du hast drei Werkzeuge – die Wahl ist nicht immer trivial. Hier eine Faustregel-Übersicht:
- Legacy-Batch-Skripte pflegen
- Schnelle Befehle
ping,ipconfig,dir - Tools die nur CMD verstehen (alte Setups)
- Einfache Boot-Skripte oder schtasks
- Schnelle Konsolen-Tests ohne PowerShell-Start
- Wenn man als Admin „nur kurz was prüfen" will
- Server-Administration
- Active Directory verwalten
- Microsoft 365 / Azure
- Komplexere Skripte mit Datenstrukturen
- Module aus PowerShell Gallery
- Alles wo du Objekte brauchst
- Linux-Tools auf Windows nutzen (grep, sed, jq, ...)
- Docker-Container entwickeln
- Webentwicklung (Node, Python, Go)
- Cross-Platform-Skripte testen
- Wenn Linux-Server admin'd werden müssen
- Linux-Tutorials direkt nachmachen
4) Historische Entwicklung
Um zu verstehen warum CMD ist wie es ist, hilft ein kurzer Blick auf die Geschichte. Die Architektur und vor allem die Einschränkungen stammen aus einer Zeit als 640 KB RAM viel Geld kosteten:
BRIEF1.DOC), 640 KB RAM-Limit, alles in ASCII. Viele heutige CMD-Einschränkungen kommen aus dieser Zeit.5) cmd.exe starten: die fünf Wege
Es gibt mehrere Möglichkeiten die CMD zu öffnen – jede mit kleinen Unterschieden:
- Win + R → „cmd" → Enter: schnellster Weg, normaler User-Kontext
- Startmenü → „cmd" tippen → Enter: einfachster Weg
- Startmenü → „cmd" → Rechtsklick → „Als Administrator": für Admin-Befehle
- Win + X → „Terminal" oder „Eingabeaufforderung": Windows 10/11 Power-User-Menü
- Explorer-Adressleiste:
cmdeintippen: öffnet CMD im aktuellen Pfad! Sehr praktisch - Aus PowerShell:
cmd: startet eine CMD-Session als Sub-Prozess
Wenn du eine Admin-Konsole brauchst (für Befehle wie netsh oder Systemkonfiguration): immer der Rechtsklick-Weg. Erkennen kannst du Admin-Konsolen am Titel „Administrator: Eingabeaufforderung". Mehr zum Konzept der Least-Privilege-Berechtigungen in K10.
6) Prompt verstehen und anpassen
Der CMD-Prompt zeigt standardmäßig das aktuelle Verzeichnis plus >: C:\Users\anna>. Den kannst du anpassen über die Environment-Variable PROMPT:
Die wichtigsten Prompt-Variablen: $P = aktueller Pfad, $G = >, $T = Uhrzeit, $D = Datum, $_ = Zeilenumbruch, $N = Laufwerksbuchstabe. Permanent setzen geht über System-Umgebungsvariablen oder in der autoexec.bat-Style-Konfiguration. Für die meisten reicht der Default.
7) Hilfe zu Befehlen finden
Niemand kennt alle CMD-Befehle auswendig. Glücklicherweise gibt es ein eingebautes Hilfesystem:
Drei Wege zur Hilfe: help ohne Argument listet alle Befehle, help BEFEHL zeigt Details zu einem, und BEFEHL /? ist der Standard – jeder CMD-Befehl unterstützt /? als Kurzform für „Hilfe zeigen". Das ist das CMD-Pendant zu PowerShells Get-Help – allerdings deutlich karger.
8) Zwei Skript-Typen: .bat vs. .cmd
Wenn du CMD-Skripte schreibst, kannst du sie mit zwei Endungen speichern: .bat oder .cmd. Was ist der Unterschied? Aus Praxis-Sicht: fast keiner. Beide werden vom selben Interpreter (cmd.exe) ausgeführt, beide unterstützen die gleichen Befehle.
Der einzige technische Unterschied: bei .cmd-Dateien wird die Variable ERRORLEVEL nach bestimmten Befehlen (wie SET, FOR) auch wirklich auf 0 zurückgesetzt – bei .bat nicht. In über 99% der Fälle merkt man das nicht. Konvention: .bat für Legacy-Skripte (so heißen sie seit DOS-Zeiten), .cmd für moderne Windows-NT-Skripte.
Beide Skript-Typen führst du aus indem du den Namen tippst (mit oder ohne Endung) – das System sucht in %PATH% nach passenden Dateien. Mehr zu Batch-Skripten in L6 Batch-Grundlagen.
9) Häufige Anfänger-Verwirrungen
Drei Punkte die typische CMD-Einsteiger stolpern lassen:
- CMD ist case-INsensitiv.
dir,DIR,Dirsind das gleiche. Dateinamen werden auch case-insensitiv behandelt (im Gegensatz zu Linux/Bash!). Das ist Windows-typisch und gilt überall im System. - Backslash statt Slash: Pfade sind
C:\Users\anna, nichtC:/Users/anna. PowerShell und WSL akzeptieren beide, CMD will den Backslash. Stolperfalle für Linux-Umsteiger. - Quotes für Pfade mit Leerzeichen:
cd "C:\Program Files"– ohne Quotes interpretiert CMD das als zwei Argumente. Gleiches Problem wie in Bash und PowerShell.
10) Quick-Reference: erste Befehle
Damit du gleich loslegen kannst – die häufigsten Befehle, die du in den nächsten Lektionen vertiefst:
| Befehl | Was er macht | Mehr in Lektion |
|---|---|---|
dir | Verzeichnis-Inhalt anzeigen | L2 |
cd PFAD | Verzeichnis wechseln | L2 |
copy A B | Datei kopieren | L3 |
del DATEI | Datei löschen | L3 |
ipconfig | Netzwerk-Konfiguration | L4 |
ping HOST | Erreichbarkeit testen | L4 |
tasklist | Laufende Prozesse | L5 |
cls | Konsole leeren | — |
exit | CMD verlassen | — |
BEFEHL /? | Hilfe zu Befehl | (diese Lektion) |
In den nächsten Lektionen lernst du jeden Bereich detailliert kennen – Navigation, Datei-Operationen, Netzwerk, System-Info, Batch-Scripting. Am Ende kannst du sowohl alte Skripte verstehen als auch neue robust schreiben.
Zusammenfassung
CMD (cmd.exe) ist die klassische Windows-Kommandozeile, Nachfolger des MS-DOS-command.com. Seit 1993 (Windows NT) im Kern unverändert. Heute drei Shells parallel: CMD für Legacy und schnelle Befehle, PowerShell für moderne Admin-Aufgaben, WSL für Linux-Tools auf Windows. CMD arbeitet text-basiert, PowerShell objekt-basiert, WSL ist echtes Linux. Skript-Endungen: .bat (Legacy) und .cmd (moderner) – praktisch identisch. CMD-Eigenheiten: case-insensitiv, Backslash in Pfaden, Quotes für Pfade mit Leerzeichen. Hilfe mit help BEFEHL oder BEFEHL /?. Starten via Win+R → cmd, oder via Explorer-Adresszeile für aktuellen Pfad. Admin-Konsole für Systembefehle nötig.
