- 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
Batch-Grundlagen und Automatisierung
Eine Batch-Datei ist im Grunde eine Textdatei, die mehrere CMD-Befehle hintereinander ausführt.
Sie hat die Endung .bat oder .cmd und wird Zeile für Zeile interpretiert.
Alles, was du in der Eingabeaufforderung manuell eintippen würdest, kann dort automatisiert werden.
Beispiel einer minimalen Batch-Datei:
@echo off
echo Starte tägliche Sicherung...
copy C:\Daten\*.txt D:\Backup\
echo Sicherung abgeschlossen.
pause
Speichere den Code als backup.bat und doppelklicke ihn — schon läuft das Script automatisch ab.
Das ist die Grundlage aller Automatisierungen unter Windows.
@echo off und echo
Wenn du eine Batch-Datei startest, zeigt CMD normalerweise jeden ausgeführten Befehl an.
Mit @echo off unterdrückst du diese Ausgabe, damit nur deine eigenen Texte erscheinen.
Das @ verhindert zusätzlich, dass die Zeile selbst angezeigt wird.
@echo off
echo Willkommen zum System-Check!
echo dient zur Textausgabe oder zum Anzeigen des Status.
Mit echo. erzeugst du eine Leerzeile.
Variablen definieren und verwenden
Batch-Skripte unterstützen Umgebungsvariablen, mit denen du Daten zwischenspeichern kannst.
set NAME=Frederik
echo Hallo %NAME%!
Ergebnis:
Hallo Frederik!
Wichtig:
In Batch-Dateien musst du Variablen immer in % einschließen, wenn du sie verwendest.
Ohne das erkennt CMD den Namen nicht.
Du kannst auch Systemvariablen nutzen:
echo Aktuelles Verzeichnis: %CD%
echo Benutzername: %USERNAME%
Bedingte Anweisungen (if)
Mit if führst du Befehle nur aus, wenn eine bestimmte Bedingung erfüllt ist.
Beispiele:
if exist C:\Daten\bericht.txt echo Datei gefunden!
if not exist C:\Daten\bericht.txt echo Datei fehlt!
Für Vergleiche:
set WERT=10
if %WERT%==10 echo Der Wert ist 10
if not %WERT%==10 echo Der Wert ist ungleich 10
Du kannst auch den letzten Fehlercode eines Befehls prüfen:
ping 8.8.8.8 >nul
if errorlevel 1 echo Fehler: Host nicht erreichbar.
errorlevel ist der Rückgabewert eines Befehls — 0 bedeutet „erfolgreich“, alles andere ist ein Fehler.
Schleifen (for)
for wiederholt Befehle für eine Liste von Elementen oder Dateien.
Das ist extrem mächtig, um ganze Ordner zu verarbeiten.
Beispiel:
Alle .txt-Dateien im Ordner ausgeben:
for %%F in (*.txt) do echo %%F
%%Fist die Schleifenvariable (in der CMD direkt nur%F, in Batch-Dateien%%F).in (*.txt)legt fest, welche Dateien durchlaufen werden.dobeschreibt, was mit jeder Datei passieren soll.
Ein praktisches Beispiel zum Kopieren:
for %%F in ("C:\Daten\*.log") do copy "%%~fF" "D:\Backup\"
Erklärung:
%%~fFgibt den vollständigen Pfad der Datei aus.So kannst du mit einer einzigen Zeile alle Dateien automatisiert kopieren.
Eingaben vom Benutzer (set /p)
Du kannst Nutzerabfragen direkt in Skripte einbauen.
@echo off
set /p NAME=Bitte Namen eingeben:
echo Hallo %NAME%, willkommen!
pause
set /p liest eine Eingabe von der Tastatur und speichert sie in einer Variablen.
Das macht Batch-Dateien interaktiv — z. B. für einfache Tools oder kleine Prüfungshelfer.
Pausen und Sprünge
pause hält das Script an, bis eine Taste gedrückt wird.
Mit goto kannst du innerhalb der Datei springen:
@echo off
set /p ANTWORT=Willst du fortfahren (j/n)?
if "%ANTWORT%"=="j" goto weiter
echo Abbruch.
goto ende
:weiter
echo Das Script läuft weiter...
:ende
pause
Das Prinzip der Labels (:) und Sprünge ist der einfachste Weg, einfache Programmabläufe zu steuern.
Fehlerbehandlung
Viele Systembefehle geben Fehlercodes zurück.
Du kannst diese mit if errorlevel abfangen und darauf reagieren.
copy daten.txt d:\backup\
if errorlevel 1 (
echo Fehler beim Kopieren!
) else (
echo Kopieren erfolgreich.
)
So kannst du Skripte robust machen — besonders nützlich bei Backups oder Netzwerkanalysen.
Beispiel: Einfaches Backup-Script mit Kontrolle
@echo off
set "QUELLE=C:\Daten"
set "ZIEL=D:\Backup"
echo Erstelle Sicherung von %QUELLE% nach %ZIEL%...
if not exist "%ZIEL%" mkdir "%ZIEL%"
for %%F in ("%QUELLE%\*.txt") do (
copy "%%~fF" "%ZIEL%" >nul
if errorlevel 1 (
echo Fehler bei %%~nxF >> fehler.log
) else (
echo %%~nxF erfolgreich kopiert.
)
)
echo Sicherung abgeschlossen.
pause
Das Script erstellt ein Backup aller .txt-Dateien, prüft, ob die Zielordner existieren, und schreibt eventuelle Fehler in eine Logdatei.
Batch-Dateien planen
Wenn du eine Batch-Datei regelmäßig ausführen willst, kannst du den Windows-Aufgabenplaner oder den Befehl schtasks verwenden.
schtasks /create /sc daily /tn "BackupJob" /tr "C:\Scripts\backup.bat" /st 03:00
Das erstellt eine geplante Aufgabe, die dein Script jeden Tag um 03:00 Uhr startet.
Häufige Fehlerquellen
| Problem | Ursache | Lösung |
|---|---|---|
| Variablenwert leer | % vergessen | %NAME% statt NAME |
| Schleifen funktionieren nicht | einfache % statt %% in Batch-Dateien | %%F verwenden |
| GOTO springt an falsche Stelle | Labelname falsch geschrieben | Groß-/Kleinschreibung beachten |
| Fehlerlevel immer 0 | Befehl gibt keinen Rückgabewert | mit Testbefehl prüfen (if exist) |
| Script läuft nicht automatisch | .bat nicht richtig gespeichert | „Alle Dateien“ wählen, Endung .bat manuell setzen |
