- 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
Navigation: cd, dir, md, rd, tree
Bevor du irgendetwas Nützliches in der CMD machen kannst, musst du dich darin bewegen können. Das ist wie in einem Dateimanager: man wechselt Ordner, schaut sich Inhalte an, legt neue Ordner an. Nur eben mit Befehlen statt Klicks. Diese Lektion deckt die Basis-Navigation ab: cd, dir, md, rd und tree.
Diese Befehle stammen direkt aus den MS-DOS-Tagen der 80er und haben sich seit 40+ Jahren kaum verändert. Wer also ein altes Buch zu DOS aufschlägt – die Befehle funktionieren immer noch. Das ist gleichzeitig Stärke (extreme Stabilität) und Schwäche (manche Features fehlen die in Bash oder PowerShell selbstverständlich sind).
1) Das Windows-Dateisystem im Überblick
Bevor wir Befehle eintippen, muss klar sein wie das Dateisystem aussieht. Anders als bei Linux mit einer einzigen Wurzel /, hat Windows mehrere Laufwerksbuchstaben: C:, D:, E: usw. Jeder ist eine eigene Baumstruktur. C: ist üblicherweise die System-Festplatte, D: oft ein zweites Laufwerk, USB-Sticks landen auf E: aufwärts.
Schau dir die typische Struktur an. Klick auf einen Ordner um zu sehen wofür er da ist:
C:\Windows\System32 ist tabu – da liegt das Betriebssystem. C:\Users\DEIN-NAME ist dein „Zuhause". C:\Program Files ist für installierte Software. Pfade mit Leerzeichen wie C:\Program Files brauchen immer Anführungszeichen in der CMD: cd "C:\Program Files".2) Wo bin ich gerade? cd ohne Argument
Die einfachste Frage zuerst: in welchem Ordner befindet sich die CMD gerade? Antwort gibt der Prompt – er zeigt immer den aktuellen Pfad. Wenn der Prompt mal angepasst ist und der Pfad fehlt: cd ohne Argument zeigt nur das aktuelle Verzeichnis:
Das ist der CMD-Klassiker im Unterschied zu Bash, wo pwd der Befehl dafür ist. cd ohne Argument zeigt – mit Argument wechselt. In PowerShell heißt es Get-Location (Alias: pwd).
3) Verzeichnis wechseln: cd
Mit cd (Change Directory) wechselst du das aktuelle Verzeichnis. Du kannst absolute oder relative Pfade angeben. Klick durch die Beispiele:
cd D:\Backups ändert NUR den Pfad innerhalb von D:, aber bleibt auf C:! Um wirklich nach D: zu kommen, tipp einfach D: (mit Doppelpunkt). Oder nutze cd /d D:\Backups – das /d-Flag wechselt sowohl Laufwerk als auch Pfad. Das ist eine der berüchtigtsten CMD-Eigenheiten.4) Pfad-Arten: relativ, absolut, speziell
In CMD gibt es vier Arten Pfade anzugeben. Jeder hat seine Einsatzgebiete:
\\ mit Server- und Share-Name.%USERPROFILE% = Home-Ordner, %APPDATA% = Roaming-AppData, %TEMP% = Temp-Ordner, %SYSTEMROOT% = C:\Windows, %PATH% = Suchpfad für ausführbare Dateien. Anzeigen mit echo %USERPROFILE% oder alle mit set. Beim Wechsel ins Home reicht: cd %USERPROFILE%.5) Verzeichnis-Inhalt anzeigen: dir
Der wahrscheinlich häufigste CMD-Befehl überhaupt: dir listet den Inhalt eines Verzeichnisses. Im Default zeigt er Datum, Größe und Namen jeder Datei. Mit Optionen lässt sich das stark verändern:
Die wichtigsten dir-Optionen:
dir /b /s = rekursive, kurze Ausgabe (nur Pfade). dir /a-d = nur Dateien, keine Verzeichnisse (Minus vor Attribut „d" für directory). Klassischer Hack: dir /b /s /a-d > alle-dateien.txt – schreibt eine Liste aller Dateien rekursiv in eine Textdatei. Praktisch für Audits.6) Wildcards: * und ?
Wie in Bash auch, kennt CMD Wildcards für Datei-Pattern. Die Regeln sind aber etwas anders – beachte das:
Beachte: * matcht null oder mehr Zeichen, ? matcht genau ein Zeichen. Eine Eigenheit von CMD: * kommt aus DOS-Zeiten mit dem 8.3-Format, das gibt manchmal überraschende Treffer. *.txt matcht beispielsweise auch foo.txtx wenn der erweiterte Name als Kurzformat „FOO~1.TXT" existiert – das stammt aus Legacy-Kompatibilität.
7) Verzeichnis anlegen: md (oder mkdir)
Mit md (Make Directory) erstellst du neue Ordner. mkdir tut das gleiche – beides sind Aliase. Mit dem aktivierten Command Extension Modus (heute immer an) kannst du sogar ganze Verschachtelungen auf einmal anlegen:
Eine schöne Eigenheit: md a\b\c\d legt automatisch alle nicht-existierenden Eltern-Ordner mit an. Das ist anders als Linux/Bash wo du mkdir -p brauchst. CMD macht das von Haus aus.
8) Verzeichnis löschen: rd (oder rmdir)
Das Gegenstück zum Anlegen: rd (Remove Directory). Im einfachsten Fall: ein leeres Verzeichnis weg. Mit /s auch ganze Bäume. Mit größter Vorsicht zu verwenden:
Die gefährliche Kombination rd /s /q: löscht stillschweigend einen ganzen Verzeichnisbaum. Klassisches Pattern für Cleanup-Skripte – aber auch für Datenverluste wenn man auf den falschen Pfad zielt. Goldene Regel: vor rd /s /q immer erst mit dir prüfen was drin ist. Mehr zu defensiver Skript-Programmierung in L6.
9) Verzeichnisbaum anzeigen: tree
Während dir nur den aktuellen Ordner zeigt, malt tree einen ganzen Verzeichnisbaum mit ASCII-Linien. Sehr nützlich für Doku oder um sich einen Überblick zu verschaffen:
tree /f /a > doku.txt ist ein häufiges Pattern: erzeugt einen ASCII-Baum der ganzen Verzeichnisstruktur in eine Textdatei. Praktisch um z.B. einen Projekt-Aufbau zu dokumentieren oder bei Support-Anfragen mitzuschicken.
10) Tab-Vervollständigung: ein Geheim-Tipp
Dass CMD heute überhaupt benutzbar ist, liegt an einem unscheinbaren Feature: Tab-Vervollständigung. Tippst du einen Anfang eines Datei- oder Ordnernamens und drückst Tab, vervollständigt CMD ihn automatisch. Nochmal Tab? Nächste Übereinstimmung. Mit Shift+Tab rückwärts.
Auch praktisch: Pfeil-hoch/runter blättert durch die Befehls-Historie. Du musst Befehle die du eben getippt hast nicht neu schreiben. Mit F7 bekommst du sogar eine Listen-Ansicht der ganzen Historie zum Auswählen. F3 wiederholt den letzten Befehl ganz. Diese Tasten-Tricks unterscheiden gemütliche Konsolen-Arbeit von Tipp-Marathon.
11) Praktische Patterns für den Alltag
Ein paar Patterns die du als FISI brauchen wirst:
12) Vergleich zu Bash und PowerShell
Wer mit Bash oder PowerShell vertraut ist, hilft diese Übersicht:
| Aufgabe | CMD | PowerShell | Bash |
|---|---|---|---|
| Aktuelles Verzeichnis | cd | pwd / Get-Location | pwd |
| Wechseln | cd PFAD | cd PFAD | cd PFAD |
| Verzeichnis-Inhalt | dir | Get-ChildItem / ls / dir | ls |
| Verzeichnis anlegen | md | New-Item -Type Directory / mkdir | mkdir |
| Anlegen mit Eltern | md a\b\c | New-Item -Force / mkdir | mkdir -p |
| Verzeichnis löschen | rd /s /q | Remove-Item -Recurse -Force | rm -rf |
| Baum-Ansicht | tree | — | tree (zusätzliche Installation) |
| Pfad-Trenner | \ (Backslash) | beides geht | / (Slash) |
| Case-Sensitivität | insensitiv | insensitiv (Windows), sensitiv (Linux) | sensitiv |
Schöne Überraschung: viele Befehle haben unter PowerShell die gleichen Aliase wie CMD – cd, dir, md, rd. Du kannst also in der PowerShell oft mit CMD-Wissen direkt loslegen. Aber dahinter laufen ganz andere Cmdlets ab. Mehr dazu in K44 PowerShell-Cmdlets.
Zusammenfassung
cd wechselt Verzeichnis (ohne Arg: zeigt aktuelles), dir zeigt Inhalt, md erstellt Ordner, rd löscht (mit /s /q rekursiv und still), tree malt ASCII-Baum. Pfad-Trenner ist Backslash, Wildcards * und ?. cd .. = Eltern, cd \ = Laufwerks-Wurzel. Laufwerks-Falle: cd D:\xxx wechselt nicht das Laufwerk – nutze cd /d D:\xxx oder erst d: tippen. Quotes für Pfade mit Leerzeichen: cd "C:\Program Files". Umgebungsvariablen: %USERPROFILE%, %APPDATA%, %TEMP%. Wichtige dir-Optionen: /b bare, /s rekursiv, /a auch versteckte, /o:d nach Datum. Tab-Completion ist DER Lifesaver. md legt auch Eltern-Ordner an (wie mkdir -p in Bash). rd /s /q ist gefährlich – immer erst mit dir prüfen!
