- 1 Abschnitt
- 15 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
- Kommandozeile (CMD)16
- 1.1Einstieg & Arbeitsweise
- 1.2Navigieren im Dateisystem
- 1.3Pfade, Wildcards und Quoting
- 1.4Umgebungsvariablen und der PATH
- 1.5Ein- und Ausgabe, Pipes und Umleitungen
- 1.6Suchen, Vergleichen und Archivieren
- 1.7Prozesse, Dienste und Systeminformationen
- 1.8Netzwerk-Basics und Troubleshooting
- 1.9Rechte, ACLs und Dateiattribute
- 1.10Batch-Grundlagen und Automatisierung
- 1.11Aufgaben planen und Startparameter
- 1.12Fehlerbehandlung, Logs und Debugging
- 1.13Erweiterte Batch-Techniken – FOR /F, String-Operationen und Menüführung
- 1.14Aufgaben
- 1.15Lösungen
- 1.16Kommandozeile (CMD)14 Fragen
Umgebungsvariablen und der PATH
Umgebungsvariablen sind kleine Platzhalter, die Werte speichern, die für das System oder für Benutzer gelten.
Man kann sie sich wie Namensschilder für häufig verwendete Informationen vorstellen.
Beispielsweise weiß Windows über Variablen, wo der Benutzerordner liegt, wie das temporäre Verzeichnis heißt oder wo ausführbare Programme gesucht werden sollen.
Beispiele für Variablen:
%USERNAME%→ aktueller Benutzername%USERPROFILE%→ Pfad zum Benutzerordner%TEMP%→ Pfad zum temporären Verzeichnis%PATH%→ Liste der Verzeichnisse, in denen Windows nach Programmen sucht
Du kannst eine Variable jederzeit anzeigen lassen, indem du ihren Namen in Prozentzeichen setzt:
echo %USERNAME%
echo %TEMP%
Oder alle Variablen auflisten:
set
Dieser Befehl zeigt eine alphabetische Liste aller momentan verfügbaren Variablen – sowohl benutzer- als auch systemweite.
Temporäre vs. dauerhafte Variablen
Es gibt zwei Arten von Variablen:
| Typ | Gültigkeit | Beschreibung |
|---|---|---|
| Temporäre Variable | Nur solange die aktuelle CMD-Sitzung offen ist | Wird mit set definiert |
| Dauerhafte Variable | Bleibt auch nach dem Schließen der CMD erhalten | Wird mit setx definiert |
Beispiel:
set NAME=Frederik
echo %NAME%
Das funktioniert nur innerhalb der aktuellen Sitzung.
Wenn du die CMD schließt und neu öffnest, ist die Variable verschwunden.
Um sie dauerhaft zu speichern:
setx NAME "Frederik"
Diese Version wird in die Windows-Registry geschrieben und ist bei der nächsten Sitzung automatisch wieder verfügbar.
System- und Benutzerkontext
Variablen können entweder systemweit oder benutzerspezifisch gelten.
Das ist ein zentraler Unterschied:
Systemweite Variablen gelten für alle Benutzer (z. B.
%WINDIR%,%ProgramFiles%).Benutzerspezifische Variablen gelten nur für den aktuell angemeldeten Benutzer (z. B.
%USERPROFILE%,%APPDATA%).
Du kannst das mit set schnell nachvollziehen – Benutzer-Variablen überschreiben gleichnamige Systemvariablen.
Der PATH – das Herz der Befehlsauflösung
Die Variable %PATH% ist eine der wichtigsten Variablen unter Windows.
Sie enthält eine Liste von Verzeichnissen, in denen Windows automatisch nach ausführbaren Programmen sucht, wenn du einen Befehl eingibst.
Wenn du z. B. ping eintippst, sucht Windows:
zuerst im aktuellen Verzeichnis
dann in jedem Ordner, der in
%PATH%eingetragen ist
Nur wenn es dort nichts findet, meldet es:
'ping' wird nicht als interner oder externer Befehl erkannt...
Du kannst den aktuellen Inhalt so anzeigen:
echo %PATH%
Beispielhafter Auszug:
C:\Windows\system32;C:\Windows;C:\Program Files\Git\bin;C:\Python39\
Das bedeutet: egal in welchem Verzeichnis du dich befindest – ping, ipconfig oder python funktionieren, weil sie in einem dieser Pfade liegen.
Einen Ordner dauerhaft zum PATH hinzufügen
Wenn du eigene Tools oder Skripte hast, kannst du sie dauerhaft zum PATH hinzufügen, damit sie überall ausführbar sind.
setx PATH "%PATH%;C:\Tools"
Dieser Befehl hängt C:\Tools an die bestehende PATH-Variable an.
Achtung: Der neue Wert gilt erst in einer neuen CMD-Sitzung.
Der alte PATH wird dabei in die Registry geschrieben, daher sollte man den aktuellen Wert immer mit echo %PATH% prüfen, bevor man ihn verändert.
Ein häufiger Fehler ist das Setzen des PATH ohne Anhängen (%PATH%;...).
Das würde alle bisherigen Einträge überschreiben – das System kann danach keine Standardbefehle mehr finden.
Beispiel: Eigenes Script überall verfügbar machen
Lege einen Ordner
C:\Scriptsan.Erstelle darin eine Datei
hallo.batmit folgendem Inhalt:
@echo off
echo Hallo aus dem globalen PATH!
3. Füge C:\Scripts zum PATH hinzu:
setx PATH "%PATH%;C:\Scripts"
4. Öffne eine neue CMD und gib einfach ein:
hallo
Wenn alles funktioniert, wird dein Script ausgeführt – egal, wo du dich im Dateisystem befindest.
Variablen in Befehlen verwenden
Du kannst Variablen in jedem beliebigen Befehl einsetzen, um dynamische Pfade oder Textausgaben zu erzeugen.
Beispiele:
echo Der Benutzername lautet: %USERNAME%
copy Bericht.txt "%USERPROFILE%\Desktop"
Variablen kannst du auch selbst definieren:
set DATEI=test.txt
echo Ich bearbeite %DATEI%
Damit lassen sich komplexere Skripte schreiben, die flexibel auf verschiedene Systeme reagieren.
Häufig genutzte Standardvariablen
| Variable | Bedeutung | Beispiel |
|---|---|---|
%USERPROFILE% | Benutzerverzeichnis | C:\Users\Frederik |
%APPDATA% | Pfad zu Anwendungsdaten | C:\Users\Frederik\AppData\Roaming |
%TEMP% | temporäre Dateien | C:\Users\Frederik\AppData\Local\Temp |
%WINDIR% | Windows-Verzeichnis | C:\Windows |
%COMPUTERNAME% | Rechnername | DESKTOP-1234 |
%DATE%, %TIME% | aktuelles Datum und Uhrzeit | echo %DATE% %TIME% |
%CD% | aktuelles Verzeichnis | echo %CD% |
%PATH% | Suchpfade für Programme | echo %PATH% |
Beispiel: Automatisiertes Backup mit Variablen
@echo off
set "ZIEL=%USERPROFILE%\Desktop\Backup_%DATE%"
if not exist "%ZIEL%" mkdir "%ZIEL%"
copy "C:\Projekte\*.txt" "%ZIEL%"
echo Backup abgeschlossen: %ZIEL%
pause
Dieses Script erstellt automatisch einen neuen Backup-Ordner auf dem Desktop mit dem aktuellen Datum im Namen und kopiert alle .txt-Dateien dorthin.
Häufige Fehlerquellen
Variablen ohne
%aufgerufen (USERNAMEstatt%USERNAME%)PATH überschrieben statt erweitert
setxohne Neustart der CMD → neue Variable nicht sichtbarPfade mit Leerzeichen ohne Anführungszeichen
Unterschied zwischen
setundsetxübersehen
