cmd

In dem folgenden Tipp erfahren Sie, wie Sie eine eigene Batch-Datei erstellen, welchen Syntax Sie hierbei verwenden und wofür eine Batch-Datei überhaupt sinnvoll ist.

Wenn Sie sich selbst eine Batch-Datei erstellen, können Sie wiederkehrende Aufgaben automatisch ausführen lassen. In diesem Tipp stellen wir Ihnen den Aufbau und Syntax von Batch-Dateien vor und beschreiben mit einer Übersicht der wichtigsten Befehle verschiedene Anwendungsbeispiele.

1. Was ist eine Batch-Datei?

Als Batch-Datei bezeichnet man eine textbasierte Scriptdatei, welche verschiedene, einfache Aufgaben über einfache Befehle nacheinander abarbeitet und im Gegensatz zu Programmen in Programmiersprachen wie C# oder C++ nicht kompiliert werden müssen, also direkt über den Kommandozeileninterpreter ausführbar sind. Der Name Batch bedeutet dabei „Stapel“, daher auch der die Bezeichnung Stapelverarbeitungsdatei.

Bereits zu DOS-Zeiten gab es Batch-Dateien, bekannt war hierbei vor allem die autoexec.bat, welche verschiedene Treiber für Maus, Soundkarte, CD-Laufwerk in den Speicher lud und Umgebungsvariablen setzte. Unter Windows stehen für eine Batch-Datei die Befehlssyntax der Eingabeaufforderung CMD.exe zur Verfügung, welcher von Windows-Version zu Windows-Version weitere Befehle erfahren hat.

Microsoft PowerShell statt die Kommandozeile?
Neben der Batchsprache für die Befehlszeile und dem ebenfalls schon sehr alten Windows Scripting Host, gibt es mit Microsoft PowerShell  eine alternative Script-Sprache, welche gegenüber den klassischen Batch-Dateien von Windows nicht auf den Kommandozeileninterpreter cmd.exe aufsetzt, sondern ein komplettes Framework für verschiedene Windows-Version angeboten wird. PowerShell ist seit Windows 7 Bestandteil von Windows und zwischenzeitlich auch für Linux und Mac verfügbar. Der Syntax ist gegenüber dem von BAT-Dateien wesentlich komplexer in der Programmierung, bietet dafür auch viel mehr Möglichkeiten. Eine PowerShell-Dokumentation finden Sie direkt bei Microsoft.

1.1. Für diese Zwecke kann man Batch-Dateien einsetzen

Batch-Dateien kommen unter Windows vor allem in Netzwerkumgebungen sehr häufig vor. Administratoren setzen beim Anmelden eines Benutzers über eine Batch-Datei Berechtigungen, binden Netzwerklaufwerke ein oder kopieren wichtige Dateien in das lokale Profil. Beim Abmelden werden temporäre Ordner gelöscht oder andere Verwaltungsaufgaben abgearbeitet.

Im privaten Umfeld können Sie über eine selbst erstellte Batch-Datei beispielsweise wichtige Dateien und Ordner auf ein anderes Laufwerk kopieren, temporäre Dateien löschen, Netzwerklaufwerke verbinden und viele weitere Dinge realisieren.

2. Einführung in Aufbau und Syntax einer Batch-Datei

Eine Batch-Datei hat die Endung .CMD oder .BAT und ist eine einfache Text-Datei, welche Sie mit Notepad oder jedem anderen Texteditor erstellen und bearbeiten können.

Wenn Sie die Batch-Datei mit dem Texteditor von Windows erstellen, müssen Sie den Dateinamen beim Speichern mit der Endung "cmd"  oder "bat" angeben, da Notepad sonst die Datei als .txt sichert.

Batch-Datei in Notepad erstellen

Batch-Datei in Notepad speichern

Wir empfehlen einen Texteditor wie Notepad ++, welcher die Syntax von Batch-Dateien erkennt und Befehle sowie Parameter farblich kennzeichnet. Dies erleichtert die Erstellung von komplexen Batch-Dateien. Ein weiterer Vorteil ist die automatische Kodierung von Umlauten, indem Sie für eine fertige Batch-Datei die Sprache auf „MS-DOS Style“ ändern, um auch Umlaute in der Eingabeaufforderung richtig auszugeben.

komplexe Batch-Datei in Notepad ++

Für komplexe Batch-Dateien empfiehlt sich ein verbesserter Texteditor wie Notepad++.

2.1. Syntax und Struktur einer Batch-Datei

Eine einfache Batch-Datei enthält mindestens einen Befehl der Kommandozeile gefolgt von einigen Parametern. Der Befehl kann beispielsweise eine Datei kopieren, Programm starten oder nur eine Variable setzen. Befehle können mit einem „&“ kombiniert werden.

Echo Text 1 & Echo Text 2

Mit dem „Pipe“ | können werden Befehle verkettet werden, beispielsweise

dir c:\windows | more

In dem Beispiel wird das Verzeichnis von Windows angezeigt, am Seitenende aber auf die Eingabe des Anwenders gewartet, um mehr anzuzeigen.

Die Befehle können mit Bemerkungen (Remarks) ergänzt werden. Alles hinter dem Befehl REM wird nicht ausgeführt.

Bildschirmausgaben sind über den Echo-Befehl möglich oder können mit @Echo off unterdrückt werden. Im Kommandofenster werden dann nur noch Texte ausgegeben, wenn diese mit Echo eingeleitet werden.

Sie können die Textausgabe eines Befehls auch in eine Datei ausgeben. Dazu wird eine Spitzklammer verwendet, beispielsweise

netstat -a > c:\Logfilesliste.txt

Verwenden Sie dagegen zwei Spitzklammern, wird die bestehende Datei ergänzt:

netstat -a >> c:\Logfilesliste.txt

Für komplexere Batch-Dateien stehen Ihnen auch Bedingungsbefehle wie „If“ oder „if else“ sowie mit goto Sprungbefehle zu einer Sprungmarke innerhalb einer Batch-Datei zur Verfügung.

Abfragen und Sprungmarken in Batch-Dateien

Abfragen und Sprungmarken in Batch-Dateien

3. Übersicht wichtiger Befehle, um eine Batch-Datei zu erstellen

Einen kleinen Teil der Befehle, welche über die Kommandozeile für eine Batch-Datei verwendet werden können, listet CMD mit dem Befehl Help auf.

Liste aller Befehle für Batch-Dateien

Mit help können sich die die Windows-Befehle für die Kommandozeile anzeigen lassen.

Die Liste umfasst viele gängige, aber auch weniger bekannte Befehle für die Programmierung wie beispielsweise den Robocopy-Befehl, mit dem sich gegenüber Copy oder XCopy weitaus komplexere Kopier- und Backupaufgaben realisieren lassen, wie es unser Artikel Robocopy- der Kopiergigant erklärt.

Die Syntax eines Befehles können Sie sich jeweils über den Parameter BEFEHL /? Anzeigen lassen.

Syntax für einen Befehl

Syntax für einen Befehl

Sie sehen in der Liste aber nicht alle Befehle, Abfragen und Funktionen, welcher der Kommandozeileninterpreter versteht. Die klassischen Befehle vom DOS-Prompt für Dateioperationen wie Löschen, Erstellen oder Umbenennen von Ordnern und Dateien (md, rd, copy, ren…) können Sie natürlich auch verwenden.

Einige Befehle kennen wiederum Unterbefehle, mit den sich weitere Operationen vornehmen lassen, beispielsweise Reg, net oder ftp.

Zu den wichtigsten Befehlen gehören:

  • Echo
    Mit @Echo off wird die Textausgabe in der Kommandozeile unterdrückt, mit @echo on wieder aktiviert. Ist die Ausgabe abgeschaltet, werden nur noch Texte über den Echo-Befehl gefolgt vom Text oder einer Variablen ausgegeben.
  • Copy
    Der Copy-Befehl kopiert Dateien mit verschiedenen Parametern.
  • XCopy
    XCopy bietet gegenüber dem klassischen Copy-Befehl noch viele weitere Möglichkeiten, welche wir in dem gesonderten Tipp XCopy - Parameter und Bespiele erklärt haben.
  • CD
    wechselt in ein anderes Verzeichnis.
  • Del
    Löscht eine Datei.
  • MKDIR
    Erstellt eine Verzeichnis.
  • RMDIR
    Löscht ein Verzeichnis.
  • Rename
    Benennt eine Datei um.
  • regsvr32
    Der Befehl regsvr32 registriert DLL-Dateien in Windows, damit diese vom System genutzt werden können.
  • Goto
    Mit Goto können Sie zu einer zuvor definierten Sprungmarke springen, welche mit ":" zuvor definiert wurde.
  • Set
    Der Set-Befehl setzt Umgebungsvariablen, welche von Programmen aber auch Batch-Dateien ausgelesen werden können. Bekannte Systemvariablen sind beispielsweise %computername% oder "%temp%. Mit dem Set-Befehl kann aber auch mit dem Parameter /P eine Eingabe vom Anwender erwartet und als Variable gespeichert werden. Geben Sie Set ohne einen weiteren Wert an, listet die Kommandozeile alle gesetzten Umgebungsvariablen auf.
  • Net
    Greift auf die Netzwerkfunktionen von Windows zurück, um beispielsweise mit net use eine Netzwerkfreigabe als Laufwerk in Windows einzubinden.
  • Reg
    Mit dem Reg-Befehl können Sie in Verbindung mit einem Unterbefehl Reg ADD, Reg DELETE, Reg COPY, Reg QUERY... auf die Registrierdatenbank von Windows zugreifen und dort gezielt Werte eintragen, ändern, auslesen oder löschen.
  • REM
    Mit dem REM-Befehl können Sie Kommentare in Batch-Dateien setzen, welche bei der Ausführung nicht beachtet werden.
  • Runas
    Dieser Befehl kann Programme im Kontext eines anderen Benutzers, beispielsweise des Administrators, starten.
  • Pause
    Mit dem Pause-Befehl wartet die Batch-Datei auf eine Eingabe des Anwenders, bevor die Datei beendet oder weiter ausgeführt wird.
  • Shutdown
    Der Befehl Shutdown fährt Windows herunter, meldet den Benutzer ab oder startetet das System neu und kennt dabei noch verschiedene Parameter, wie /r = startet das System neu, /h für den Ruhezustand oder /o ruft die erweiterten Starteinstellungen nach dem Neustart auf.
  • systeminfo
    Startet das Tool Systeminfo, mit dem sich über den Befehl "findstr" bestimmte Werte auslesen lasen.
  • If
    Mit dem If-Befehl können eine Eingabe abfragen oder in Kombination mit exist feststellen, ob eine bestimmte Datei existiert und dann zu einer Sprungmarke wechseln.
  • FTP
    Mit dem FTP -Befehl nutzen Sie den FTP-Client der Kommandozeile, welche über weitere Befehle wie open, put, geht usw. verfügt. Der Nachteil von FTP über eine Batchdatei ist die Verwendung vom Benutzernamen und Kennwort im Klartext.
  • Start
    Mit dem Start-Befehl können Sie Programme aus einer Batch-Datei heraus starten. Windows 10 Apps lassen sich auch auf diesem Wege starten, benötigen aber den kompletten Pfad zur App, wie beispielsweise start "shell:appsfolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge" "https://www.wintotal.de" Den Pfad zur App können Sie sich über Tools wie InstalledAppView anzeigen lassen.

Eine vollständige Übersicht aller möglichen Befehle für die Konsole finden Sie in der Windows-Befehle-Referenz, welche alle Befehle ab Windows 8.1, Windows 10 bis zum aktuellen Windows Server auflistet und viele Detailerklärungen zu den Befehlen gibt.

Für den tiefen Einstieg empfehlen wir zudem die Taschen-Bibliothek „Windows-Befehle für Server 2016 und Windows 10 – kurz & gut: Inklusive PowerShell-Alternativen“ (ISBN 978-3-96009-069-4) vom O'Reilly Verlag, welche uns als Nachschlagewerk bisher gute Dienste erwiesen hat.

4. So können Sie Batch-Dateien manuell oder automatisiert ausführen lassen

Fertige Batchdateien können Sie ganz einfach über einen Doppelklick starten. Ein weiterer Weg ist über die Kommandozeile CMD. Wechseln Sie hier in den Pfad der Batch-Datei und führen Sie diese mit dem Namen "batchdatei.bat" aus.

Verwenden Sie allerdings Befehle, welche Administratorrechte benötigen, sollten Sie die Batchdatei bereits mit Admin-Rechten starten.

Batch als Admin ausführen

Batch als Admin ausführen

Sie können Verknüpfungen zu einer Batch-Datei auch in den Autostart-Ordner  für den Benutzer legen. Damit wird die Batch-Datei beim Anmelden des Nutzers ausgeführt. Der Pfad lautet

C:\Users\BENUTZERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Sie können den Pfad einfach öffnen, indem Sie erst Windows-Taste + R drücken, woraufhin der "Ausführen"-Dialog startet. Geben Sie dann shell:startup ein. Es öffnet sich jetzt der Autostart-Ordner des Benutzers.

Shell Startup

Shell Startup öffnet den Autostart-Ordner des Benutzers.


Für regelmäßig wiederkehrende Aufgaben wie Backups bietet es sich an, die Aufgabenplanung so zu konfigurieren, dass er die Batch-Datei regelmäßig, beispielsweise wöchentlich, ausführt. Starten Sie über START -> Ausführen -> Aufgabenplanung diese und erstellen Sie einen neue, einfache Aufgabe.

Batch-Datei über die Aufgabenplanung

Batch-Datei über die Aufgabenplanung

Als Trigger wählen Sie wöchentlich

Aufgabe wöchentlich

Aufgabe wöchentlich

und wählen als Aktion "Programm starten". Hier geben Sie den Pfad zu der Batch-Datei an, welche ausgeführt werden soll.

Pfad zur Batch-Datei

5. Eine eigene Batch-Datei erstellen, verschiedene Anwendungsbeispiele

Wir haben für Sie in der Folge einige einfache Beispiele, wie sich Batch-Dateien in Windows sinnvoll einsetzen lassen, zusammengestellt. Beachten Sie bitte, dass die Batch-Dateien nicht ohne Anpassung auf anderen Systemen lauffähig sind. Die Beispiele dienen vielmehr als Anregung für eigene, individuelle Stapelverarbeitungsdateien.

Kopieren Sie die Texte in eine leere Textdatei und speichern Sie diese als "name.cmd" ab. Wie unter Punkt 4. beschrieben, können Sie die Batch-Dateien dann manuell oder automatisiert starten.

Eventuell müssen Sie die Pfadangaben ändern und anpassen. Sie finden im Internet darüber hinaus noch viele weitere Beispiele und Anregungen.

5.1. Sicherung eigener Dateien auf einen externen Datenträger

In unserem ersten Beispiel werden wir mit Xcopy Dateien kopieren. Der Befehl kopiert alle Ordner und Dateien unterhalb des Ordners "Eigene Dateien" auf unserem Laufwerk D in den Ordner Sicherung auf dem Laufwerk E.

REM Kopieren eines Ordners
XCOPY "d:\Eigene Dateien\*.*" "e:\Sicherung\" /E /C /H /Y /D

Der Parameter /e kopiert nicht leere Verzeichnisse und Unterverzeichnisse, der Parameter /c setzt auch bei einem Fehler den Kopiervorgang fort, der Parameter /y dagegen unterdrückt die Rückfrage, ob bestehende Dateien überschrieben werden sollen, /d kopiert nur neuere Dateien. Alle Parameter von Xcopy können Sie sich über Xcopy /? In der Kommandozeile CMD anzeigen lassen und lassen sich beliebig ergänzen, beispielsweise noch /v für eine Prüfung der geschriebenen Dateien über die Dateigröße.

5.2. Mit WakeOnLAN einen PC oder NAS aus dem Standby wecken

Wenn Sie ein NAS verwenden, welches Wake On LAN beherrscht, können Sie direkt beim Anmelden in Windows das Gerät aufwecken und brauchen nicht erst ein spezielles Tool des Herstellers dafür zu starten. Da Windows selbst kein WakeOnLAN über die Kommandozeile aufrufen kann, brauchen wir ergänzend das kleine, kostenlose Tool WakeUP!, Entpacken Sie die ausführbare Datei in einen Ordner und erstellen Sie darin die folgende Batch-Datei:

@echo off
REM Serverwake.bat (weckt das NAS auf)
wake.exe 00-11-32-33-04-43 192.168.1.255

Die Parameter hinter dem Wake-Befehl müssen Sie noch anpassen und beinhalten die MAC-Adresse und Broadcast-Adresse. Die MAC-Adresse können Sie sich über die Oberfläche im NAS in den Einstellungen oder oder den Router anzeigen lassen. Die Broadcast-Adresse ist von Adressraum des DHCP-Servers im Router abhängig. In unserem Beispiel vergibt dieser IP-Adressen von 192.168.1.2 bis 192.156.1.254.

Die Verknüpfung zur Batch-Datei haben wir im Autostart-Ordner von Windows 10 im Pfad C:\Users\BENUTZERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup hinterlegt.

5.3. Netzwerklaufwerke beim Anmelden verbinden

Netzwerklaufwerke kann man über den Windows-Explorer fest verbinden. Es gibt aber auch Anwendungsfälle, in denen man Laufwerke nur temporär verbinden oder diese wieder trennen möchte. Auch diese Funktion bietet die Kommandozeile über eine Batch-Datei mit dem Befehl net use.

Mit dem Befehl

net use z: \\NETZWERKPFAD\ORDNER

in einer Batch-Datei verbinden Sie den Ordner am Netzwerkpfad mit dem Buchstaben Sie können von dieser  Batch-Datei eine Verknüpfung in den Autostart-Ordner von Windows legen, wie wir es unter Punkt 5.2 beschrieben haben.

Mit dem Befehl

net use z: \\NETZWERKPFAD\ORDNER /delete

wird das Netzwerklaufwerk wieder getrennt.

5.4. IP-Adressen auslesen

Mit der folgenden Batch-Datei können Sie sich die verwendeten IPv4- und IPv6-Adressen von Ihrem System anzeigen lassen.

@echo off
REM IP-Adressen anzeigen
ECHO Bitte warten... System wird ausgelesen
ipconfig | findstr IPv4
ipconfig | findstr IPv6
PAUSE

5.5. PC-Cleaner und Datensicherung

Das folgende Beispiel ist etwas komplexer und bietet gleich mehrere Auswahlmöglichkeiten und soll beispielhaft verdeutlichen, wie Sie Abfragen einbauen, Sprungmarken nutzen und auch mit Variablen arbeiten können.

Sie können mit der Batch-Datei temporäre Dateien löschen und optional danach den PC herunterfahren oder neue Dateien aus dem Ordner "Dokumente" des aktuellen Nutzers sichern und wiederum optional den PC danach herunterfahren. Für die Sicherung der Dateien nutzen wir den bereits bei 5.1. beschriebenen Xcopy-Befehl. Statt fester Pfadangaben werden aber Variablen wie %HOMEDRIVE% und %HOMEPATH% verwendet. Zudem prüft die Batch-Datei vorab, ob ein Sicherungsordner für den Nutzer bereits besteht und legt diesen andernfalls automatisch an.

Komplexe Batch-Datei mit Auswahlmöglichkeiten

Sie können das Beispiel gerne um eigene Funktionen erweitern oder optimieren, indem Sie doppelt vorkommende Funktionen wie das Anlegen des Benutzerordners zur Sicherung oder den Shutdown über weitere Abfragen und Sprungmarken entschlacken. Zur besseren Übersicht und Verständnis haben wir uns aber für die folgende Variante entschieden:

@echo off
:abfrage
REM ++ Abfrage der Funktionen +++++++++++
cls
echo +++++++++++++++++++++++++++++++++++++
echo +++ PC-Cleaner und Backup +++
echo +++++++++++++++++++++++++++++++++++++
echo.
echo.
echo.
echo "t" eingeben, um Temp-Dateien zu loeschen
echo "s" eingeben, um Temp-Dateien zu loeschen und Windows herunterfahren
echo "b" eingeben, um Eigene Dateien zu sichern
echo "x" eingeben, um Eigene Dateien zu sichern und Windows herunterfahren
echo "e" eingeben, um diese Batch zu beenden

echo.
set /p eingabe=Ihre Auswahl: 
if /i '%eingabe%'=='t' goto deltemp
if /i '%eingabe%'=='s' goto deltempshutdown
if /i '%eingabe%'=='b' goto backup
if /i '%eingabe%'=='x' goto backupshutdown
if /i '%eingabe%'=='e' goto ende
goto abfrage
:deltemp
Echo Temp-Dateien des Nutzers werden geloescht
del /q /f /s %temp%\*
Echo Temp-Dateien geloescht, bitte Taste druecken
Pause
goto abfrage
:deltempshutdown
Echo Temp-Dateien des Nutzers werden geloescht
del /q /f /s %temp%\*
Echo fertig, Shutdown startet
Shutdown /s
Goto Ende
:backup
REM Pruefung Backupordner
IF NOT EXIST "d:\Sicherung\%USERNAME%" mkdir "d:\Sicherung\%USERNAME%"
Echo Sicherung Eigener Dateien
XCopy "%HOMEDRIVE%\%HOMEPATH%\Documents\*" "d:\Sicherung\%USERNAME%" /E /C /H /Y /D
Echo Kopiervorgang beendet, bitte Taste druecken
Pause
goto abfrage
:backupshutdown
REM Pruefung Backupordner
IF NOT EXIST "d:\Sicherung\%USERNAME%" mkdir "d:\Sicherung\%USERNAME%"
Echo Sicherung Eigener Dateien
XCopy "%HOMEDRIVE%\%HOMEPATH%\Documents\*" "d:\Sicherung\%USERNAME%" /E /C /H /Y /D
Echo Kopiervorgang beendet, bitte Taste druecken
Pause
Echo Shutdown startet
Shutdown /s
Goto Ende
:ende
exit

6. Tutorial Batch Datei erstellen/Befehle mit Cmd ausführen

In dem folgenden Video bekommen Sie nochmals eine Einführung, wie Sie eine Batch-Datei unter Windows erstellen und Befehle über die Kommandozeile ausführen.

 

35 Bewertungen

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne Ø 4,60
Batch-Datei erstellen: Befehle und Programmierung einfach erklärt
Loading...