Zum Inhalt springen
Der Guide für ein smartes Leben.
VG Wort Pixel
Windows Praxis-Tipp

Windows 10: So erstellen und nutzen Sie Batch-Dateien

Zum einen vereinfachen Batch-Dateien Aufgaben, zum anderen arbeiten sie mehrere Aufgaben in einem Rutsch ab. Auch in Windows 10 sind Batch-Dateien nützliche Helfer. Wir zeigen Ihnen, wie Sie diese optimal einsetzen.

Autor: Walter Saumweber • 8.1.2020 • ca. 6:00 Min

Microsoft hat eine neue Windows-10-Preview als ISO-Download veröffentlicht.
Tipps & Tricks: So erstellen und nutzen Sie Batch-Dateien​
© Microsoft
Inhalt
  1. Windows 10: So erstellen und nutzen Sie Batch-Dateien
  2. Batch-Dateien von der Taskleiste aufrufen

Um in den Genuss von den Vorteilen von Batch-Dateien zu kommen, werden Sie zwar um ein wenig Programmierarbeit nicht herumkommen; das sollte Sie aber nicht weiter abschrecken. Das Erlernen der Batch-Programmierung erfordert im Allgemeinen nicht viel Zeit und Mühe...

Um in den Genuss von den Vorteilen von Batch-Dateien zu kommen, werden Sie zwar um ein wenig Programmierarbeit nicht herumkommen; das sollte Sie aber nicht weiter abschrecken. Das Erlernen der Batch-Programmierung erfordert im Allgemeinen nicht viel Zeit und Mühe

Editor für Batch-Dateien

Grundsätzlich können Sie Batch-Dateien mit jedem Texteditor erstellen, wobei sich als Windows-Anwender natürlich der Windows Editor anbietet. Mehr Komfort haben Sie jedoch im Editor Notepad++ (https://notepad-plus-plus.org). 

Notepad++ bietet gegenüber dem Windows Editor viele zusätzliche Funktionen, und er unterstützt auch speziell die Batch-Programmierung. So enthält er etwa eine Auto-Vervollständigung für Batch-Befehle. 

Auch das bekannte Problem mit den Umlauten lässt sich mit diesem Editor elegant umgehen.

Windows 10: So erstellen und nutzen Sie Batch-Dateien - Notepad++ Screenshot
Notepad++ integriert sich nach der Installation im Windows- Explorer-Kontextmenü, sodass Sie jede Batch-Datei per Rechtsklick zur Bearbeitung öffnen können.
© Screenshot & Montage: PC Magazin

Umlaute in Batch-Dateien korrekt ausgeben 

Die Ausgabe von Umlauten und auch des Buchstaben ß ist in Batch-Dateien von jeher ein Problem. Mit dem Editor Notepad++ lässt sich das Problem lösen.

Die Buchstaben ä, ö, ü und ß werden bei der Ausgabe mit dem echo-Befehl normalerweise völlig verzerrt dargestellt. Mit dem Notepad++-Editor können Sie das jedoch korrigieren. 

Klicken Sie in der oberen Menüleiste auf Sprachen, wenn Sie die Batch-Datei im Editor geladen haben. Wählen Sie dann im aufklappenden Menü den Buchstaben M und anschließend MS-DOS Style. Schreiben Sie nun die gewünschten Umlaute sowie den Buchstaben ß in den Batch-Code. Speichern Sie die Änderung. 

Nun stellen Sie die Sprache im Notepad++-Editor wieder auf Batch ein (Sprachen/B/Batch). Jetzt werden Umlaute und der Buchstabe ß beim Ausführen der Batch-Datei korrekt ausgegeben. Das betrifft übrigens auch alle weiteren Umlaute. In diesem Fall brauchen Sie die Sprache in Notepad++ nicht mehr zu ändern.

Windows 10: So erstellen und nutzen Sie Batch-Dateien - Notepad++ MS-DOS Style Screenshto
Stellen Sie in Notepad++ pro Batch-Datei nur einmal temporär auf MS-DOS Style um. Danach sind Umlaute und der Buchstabe ß bei der Ausgabe kein Problem mehr.
© Screenshot & Montage: PC Magazin

In aller Kürze – ein paar Grundlagen 

Standardmäßig werden beim Ausführen einer Batch-Datei alle enthaltenen Codezeilen, einschließlich der auskommentierten Batch-Befehle, mit ausgegeben. Das ist natürlich nur in den seltensten Fällen erwünscht.

Mit dem Befehl @echo off können Sie dieses Echo unterbinden. Schreiben Sie dazu den Befehl an den Anfang Ihrer Batch-Datei. Ansonsten ist der echo-Befehl, ohne das @-Zeichen, für Ausgaben zuständig.

Mit dem Befehl title können Sie einen Fenstertitel festlegen. Mit dem Befehl color ändern Sie für die Konsole die Hintergrund-  und die Schriftfarbe. Beide Farbangaben erfolgen in Hexadezimalform, color 8F legt beispielsweise einen dunkelgrauen Hintergrund (Wert 8) und eine weiße Schriftfarbe (Wert F) fest.

Weitere Farbwerte: 0 = Schwarz, 1 = Dun- kelblau, 2 = Dunkelgrün, 3 = Blaugrün, 4 = Dunkelrot, 5 = Lila, 6 = Ocker, 7 = Hellgrau, 9 = Blau, A = Grün, B = Zyan, C = Rot, D = Mgenta, E = Gelb. 

Kommentarzeilen werden mit REM, gefolgt von einem Leerzeichen, eingeleitet. Kommentare werden beim Ausführen einer Batch-Datei komplett ignoriert. 

Sie sind in erster Linie dazu da, den Batch-Code zu erklären. Sie können aber auch eingesetzt werden, um ansonsten lauffähige Befehle auszukommentieren, also praktisch zu deaktivieren. 

Wenn man die auskommentierten Anweisungen später in das Batch-Programm integrieren möchte, braucht man nur das REM am Anfang der Zeile zu entfernen. 

In Notepad++ brauchen Sie beides nicht einmal selbst zu tun: Nach Rechtsklick auf eine Zeile bietet das Kontextmenü die Optionen Auswahl auskommentieren sowie Auskommentierung der Auswahl aufheben.

Windows 10: So erstellen und nutzen Sie Batch-Dateien - Notepad++ Code auskommentieren
Der Editor Notepad++ ist mit einem Kontextmenübefehl beim Auskommentieren behilflich.
© Screenshot & Montage: PC Magazin

Groß- und Kleinschreibung spielen in der Batch-Programmierung übrigens keine Rolle, daher könnte man REM zum Beispiel auch kleinschreiben (üblicherweise wird es aber großgeschrieben). 

Variablen werden mit set deklariert, und wenn eine Benutzereingabe in die Variable geschrieben werden soll, lautet die allgemeine Syntax folgendermaßen: set /p <Variable>=<Ausgabe>
Wobei <Variable> für den Namen der Variablen und <Ausgabe> für den Text steht, der dem Benutzer angezeigt werden soll. 

Wenn Sie auf die Variable zugreifen, setzen Sie vor und nach dem Variablennamen jeweils ein Prozentzeichen.  

Der Benutzer wird zunächst aufgefordert, die Anzahl der zu öffnenden Windows-Explorer-Fenster anzugeben (maximal fünf):
set /p ANZAHL=Anzahl Windows-Explorer-Fenster (max. 5):
IF %ANZAHL% LSS 1 (set ANZAHL=1)

Die IF-Anweisung prüft, ob der Wert der Variablen ANZAHL kleiner als eins ist und setzt in diesem Fall die Variable auf diesen Wert, sodass das Batch-Programm im Weiteren zumindest ein Windows-Explorer-Fenster öffnet. 

Der Vergleichsoperator LSS ist Teil der command extensions, die in Windows 7/8.1/10 standardmäßig aktiviert sind; er bedeutet kleiner als (in früheren Zeiten war in Batch-Programmen nur die Überprüfung auf Gleichheit möglich). 

Weitere Vergleichsoperatoren sind LEQ (kleiner als oder gleich), GTR (größer als ), GEQ (größer als oder gleich), NEQ (ungleich) sowie EQU oder das ältere == für die Überprüfung auf Gleichheit.

Microsoft Windows 7 Design für Windows 10: So geht's

Programme aus dem Batch-Code heraus starten

Mit dem Befehl start rufen Sie in der Batch-Datei andere Programme auf. Die Anweisung start explorer.exe startet zum Beispiel den Windows-Explorer. Wenn die Batch-Datei gleich mehrere Windows-Explorer- Instanzen starten soll, führen Sie diese Anweisung im Code einfach wiederholt per Schleife aus: for /L %%I IN (1, 1, %ANZAHL%) DO (start explorer.exe)

Es handelt sich um eine typische Zählschleife. Beachten Sie, dass der Name der Schleifenvariablen (hier I, mit zwei vorangestellten Prozentzeichen) nur aus einem einzigen Buchstaben bestehen darf. 

Die Angaben in der ersten Klammer bedeuten den Startwert der Schleifenvariablen, die Schrittweite, also um welchen Wert die Schleifenvariable nach jedem Durchlauf erhöht werden soll, sowie den Endwert, der hier der Variablen ANZAHL entnommen wird. 

Da der Speicherort dieser Programme in der Regel im Systempfad liegt, ist es nicht notwendig, den Pfad zur ausführbaren Datei mit anzugeben. Vorschlag: Erstellen Sie sich eine Batch-Datei, die alle Anwendungen, mit denen Sie praktisch in jeder Windows-Sitzung arbeiten, auf einmal startet. Dann brauchen Sie das nicht selbst zu tun. 

Schreiben Sie die erforderlichen Startbefehle einfach hintereinander. Übrigens können Sie auf diese Weise auch Webseiten öffnen. Mit start https://www.connect-living.de zeigen Sie zum Beispiel die PC-Magazin- Homepage in Ihrem Standard-Browser an.

Was ist die aktuelle Windows-10-Version?

Systemvariablen verwenden 

Des Weiteren können Sie im Batch-Code auf alle Systemvariablen zugreifen. Diese werden dabei ebenfalls in zwei Prozentzeichen eingefasst. Mit %USERNAME% können Sie zum Beispiel den Namen des Windows-Benutzers ausgeben, und mit %COMPUTERNAME% erhalten Sie den Namen des Computers, auf dem die Batch-Datei ausgeführt wird. 

%USERDOMAIN% liefert im Netzwerk die Domäne des angemeldeten Benutzers, bei einem lokalen Account ebenfalls den Computernamen. Mit der Anweisung echo %date% können Sie das aktuelle Datum ausgeben und mit echo %time% die Zeit. Natürlich können Sie beide Daten auch in einem echo-Befehl verarbeiten, zum Beispiel:
echo Datum: %date%, Zeit: %time%

Mit %ProgramFiles% greifen Sie auf den Installationspfad (meist C:\Programme) zu. Die Systemvariable %SystemRoot% steht für das Verzeichnis und %SystemDrive% für das Laufwerk, in dem Windows installiert ist, %USERPROFILE% für den Benutzerordner. 

Mit %windir% haben Sie Zugriff auf das Windows-Verzeichnis, die Variable %0% liefert den Namen der Batch-Datei, die gerade ausgeführt wird, einschließlich des Pfades, und mit %RANDOM% können Sie sogar Zufallszahlen (zwischen 0 und 32767) erzeugen. 

Folgender Code zeigt ein Beispiel für den Einsatz von Systemvariablen in Batch-Dateien. Das Batch-Programm leert auf Nachfrage das TEMP- Verzeichnis und zeigt vorher an, wo es sich auf dem Computer befindet. 

In diesem Verzeichnis sammeln sich mit der Zeit viele Dateien und Unterordner an, die nur temporär gebraucht werden und danach praktisch überflüssig sind; falls Dateien noch gebraucht werden, werden diese nicht gelöscht. 

Der Zugriff auf das TEMP-Verzeichnis erfolgt mit der Variablen %temp%. Folgender Befehl zeigt den kompletten Pfad:
echo Ihr Temp-Verzeichnis befindet sich in %temp%

Firefox schneller machen

Danach folgt in bekannter Manier die Rückfrage, ob das TEMP-Verzeichnis gelöscht werden soll:
set /p AUSWAHL=Soll das Temp-Verzeichnis geleert werden? (j/n). 

Die Eingabe des Benutzers wird in der Variablen AUSWAHL gespeichert. Lautet sie j für Ja, wird das TEMP-Verzeichnis geleert. Bei allen anderen Zeichen erfolgt keine Aktion, sondern nur eine Mitteilung, dass das TEMP-Verzeichnis nicht geleert wurde (n und alle anderen Zeichen, zum Beispiel auch das große J, werden der Einfachheit halber gleichbehandelt). 

Hier die zuständige IF-Anweisung mit ELSE-Zweig:
IF %AUSWAHL% == j (
del /f /s /q %temp%\*.*
) ELSE (
echo Temp-Verzeichnis wurde nicht geleert
)
 

Der del-Befehl mit den angegebenen Parametern löscht den gesamten Inhalt des TEMP-Verzeichnisses, ohne das Verzeichnis selbst anzufassen. Beachten Sie, dass das folgende ELSE immer in einer Zeile mit den Klammern stehen muss.