Microsoft Batch-Datei erstellen – Befehle und Beispiele

Mit Microsoft Batch können schnell und ohne die Verwendung eines Kompilers, wie er bei komplexen Programmiersprachen (z.B. C++) nötig ist, eigene kleine Programme erstellt werden.

In diesem Artikel möchte ich dir beschreiben wie das geht. Dazu soll es um die wichtigsten Befehle gehen. Außerdem gibt es einige Beispiele dazu.

Grundlage: Batch-Datei erstellen

Als erstes solltest du wissen wie du die Datei erstellen kannst. Das ist im Prinzip ganz einfach.

Rufe einen beliebigen (z.B. den Standard Editor unter Windows) auf, gib die Befehle ein und speichere die Datei unter „name.bat„.

Fertig ist die Batch-Datei. Nun kann sie wie gewohnt per Doppelklick ausgeführt werden.

Features von Batch

Nun möchte ich erst einmal die Frage klären, wofür das gut  ist bzw. was du damit machen kannst.

  • Ablauf von bestimmten Programmen hintereinander
  • Dateien verarbeiten (Kopieren, Verschieben, Löschen, Ordner auslesen)
  • „Normale“ Programme (mit Schleifen, Variablen…)

Was genau du damit machen willst bleibt deiner Kreativität überlassen. Vielleicht möchtest du einfach nur einen speziellen Vorgang automatisieren oder ein Problem mit einem Programm auslösen.

Die wichtigsten Batch-Befehle

Würde ich alle Befehle auflisten, so würde dieser Artikel noch um einiges länger werden, ich habe hier einmal die wichtigsten Befehle bzw. Batch Konstrukte kurz beschrieben.

Beachte bitte, dass hinter jedem Befehl in der Regel ein Leerzeichen stehen muss. Außerdem gilt: Pro Zeile ein Befehl.

Hinweis: Um alle Befehle anzeigen zu lassen, rufe die Eingabekonsole ([Windows] + [R] „cmd.exe“) auf und gebe dort den Befehl HELP ein. Um mehr über einen Befehl zu erfahren, gebe einfach befehl /? in die Eingabekonsole ein.

  • Kommentare
    Damit eine Zeile ignoriert wird, also als Kommentar gilt, gibt es zwei Möglichkeiten entweder ein REM mit Leerzeichen dahinter am Anfang der Zeile setzen oder ::.REM Kommentar
    :: Kommentar
  • Ausgabe
    Für die Ausgabe gibt es:echo Hier steht dein Text....
  • Auf Tastendruck warten/Pause
    MIt einem einfachen pause wird nach dem Drücken einer beliebigen Taste mit dem Programm fortgefahren, bzw. wenn man am Ende angelangt ist, es beendet.
  • Befehlsanzeige an-/ausschalten
    Wer verhindern will, dass die Befehle, die gerade ausgeführt werden angezeigt werden, kann per @echo off die Befehlsanzeige ausschalten, der gleiche Befehl mit on sorgt dafür, dass sie wieder angeschaltet wird.
  • Dateien und Verzeichnisstrukturen kopieren
    Zum Kopieren einer Datei ohne viel Drumherum kann der Befehl wie folgt aussehen:Copy "C:\PFAD\datei_alt.txt" "C:\PFAD\datei_neu.txt"

    Um auch Verzeichnisstrukturen zu kopieren, solltest du dir einmal den Befehl XCopy anschauen.

  • Aktuelle Zeit ausgeben
    Um die aktuelle Zeit auszugeben kann die Variable %time% via echo ausgegeben werden. Also etwa so:echo %time%
  • Variablen
    Durch set variable=wert können Variablen Werte zugeteilt werden, die dann zum Beispiel per echo mit %variable% ausgegeben werden können.set zahl=2
    echo %zahl%
  • Datei-Schleife
    Um eine Aktion an mehreren Dateien durchzuführen, gibt es bei der Batch Programmierung die For-Schleife:for /F "delims=" %%a in (datei.txt) do call :ausgabe "%%a".

    Hier wird die Datei „datei.txt“ Zeile für Zeile ausgelesen, indem der Inhalt der jeweiligen Zeile an den Sprungpunkt :ausgabe übergeben wird, dort kann die Variable dann mit %1 genutzt werden.

  • Sprungpunkte
    Zwar kann man mit Batch nicht ohne weiteres eigene Funktionen erstellen, dafür aber Sprungpunkte einrichten. Mit :name beginnt ein Sprungbereich. Um zu diesem zu springen und die danach stehenden Befehle auszuführen, wird goto :name verwendet.
  • Programm starten
    Die Regedit oder andere Systemprogramme können z.B. per start regedit.exe ausgeführt werden.
  • Bildschirm leeren
    cls leert die Eingabekonsole.
  • if Abfrage
    Eine if Abfrage lässt sich ebenfalls sehr einfach realisieren:if %variable%=="Text" Befehl

Wie gesagt, es gibt nach zahlreiche weitere Befehle, die du mit dem Befehl HELP im CMD findest, außerdem kannst du dich dort auch über die Parameter informieren.

1. Beispiel: Zig Fenster öffnen

Das klassische Beispiel: Den PC zum Absturz bringen. Ich habe es eben nochmal probiert und es funktioniert immer noch problemlos 🙂

@echo off
:1
start
goto 1

Das ganze läuft wie folgt ab. Sprungmarke 1: Neues Konsolenfenster wird geöffnet, er springt zu Sprungmarke 1. Das ganze läuft dann endlos ab, was du natürlich gerne testen kannst.

2. Beispiel: Dateien kopieren

@echo off

set /p file1="Datei (1): "
set /p file2="Datei (2): "
 
Copy %file1% %file2%
 
echo Done! "%file1%" nach "%file2%" kopiert!
 

pause

Hier werden zunächst Benutzereingaben abgefragt (Parameter /p). Anschließend wird die erste Datei zur Datei 2 kopiert.

3. Beispiel: Simples Batchmenü zur Programmauswahl

Immer diese nervigen Ordner. Viel „eleganter“ geht es mit einer Batchdatei und einem Auswahlmenü:

@echo off

:menu
cls
echo --- Willkommen ---
echo 1 Programm1.exe starten
echo 2 Programm2.exe starten
echo 3 Programm3.exe starten
set /p command=""
 
if %command%==1 start regedit.exe 
if %command%==2 start C:programm2.exe 
if %command%==3 start C:programm3.exe 
 

goto menu

So kannst du nach dem Start der Batch-Datei einfach das Programm auswählen, welches gestartet werden soll.

4. Beispiel: Simpler Ladebalken

Mit diesem Beispiel kannst du einen einfachen Ladebalken in Batch erstellen. Der Ping sorgt übrigens für die Zeitverzögerung von in diesem Fall 3 Sekunden.

@echo off

echo Û²²²²²²²²²
ping localhost -n 3 >nul
cls
echo ÛÛ²²²²²²²²
ping localhost -n 3 >nul
cls
echo ÛÛÛ²²²²²²²
ping localhost -n 3 >nul
cls
echo ÛÛÛÛ²²²²²²
ping localhost -n 3 >nul
cls
echo ÛÛÛÛÛ²²²²²
ping localhost -n 3 >nul
cls
echo ÛÛÛÛÛÛ²²²²
ping localhost -n 3 >nul
cls
echo ÛÛÛÛÛÛÛ²²²
ping localhost -n 3 >nul
cls
echo ÛÛÛÛÛÛÛÛ²²
ping localhost -n 3 >nul
cls
echo ÛÛÛÛÛÛÛÛÛ²
ping localhost -n 3 >nul
cls
echo ÛÛÛÛÛÛÛÛÛÛ
ping localhost -n 3 >nul
cls

pause

5. Inspiration: FTP Programm

Damit du dich selbst noch testen kannst, überlasse ich dir das 5. Programm. Mein Vorschlag: Ein FTP Programm mit möglichst ausfallsicherem Upload.

  1. Daten (Server, Benutzername, Passwort, Datei lokal, Datei Server) abfragen & Verbinden
  2. Upload von lokaler Datei allerdings mit kryptischen Namen.
  3. Datei auf Server umbennen.
  4. Die Datei mit kryptischem Namen zu dem vorherigen Namen der Datei aus 3. umbennen.
  5. Die Datei aus 3. löschen
  6. Verbindung schließen & Programm beenden
Hilfe zu den FTP Befehlen gibt es auf dieser Website.

3 Gedanken zu „Microsoft Batch-Datei erstellen – Befehle und Beispiele“

  1. die beschreibung und die beispiele für for sind die schlechtesten die ich in der edv und it kenne. dipl. ing. stefan grabowski, alias graf, ex-ibm.