Eingabeaufforderung
Batch-Programmierung leicht gemacht
Totgesagte leben länger: Batch-Programme gibt es immer noch. Mit ihnen steuern Sie Windows und Anwendungen individuell und effzient.

Auch über diesem Artikel könnten die für die meisten Märchen gültigen zwei Sätze stehen: "Es war einmal ..." und "Und wenn sie nicht gestorben sind ...". Denn lang, lang ist's her, dass sich die Entwickler der ersten Betriebssysteme die DOS-Befehle ausdachten, die zum großen Teil fast unverändert und sogar erweitert bis zum aktuellen Windows 8.1 genutzt werden können.
Die Befehle dienen dazu, mithilfe des Befehlsinterpreters cmd.exe (Eingabeaufforderung) auf das System lesend und schreibend zuzugreifen. Einige dieser Befehle haben Sie sicher schon benutzt. Dazu gehört z.B. prompt. Damit ändern Sie die Ausgabe des Textes an der Eingabeaufforderung im Cmd-Fenster. Oder haben Sie color verwendet, um Hinter- und Vordergrundfarbe des Eingabefensters zu ändern, also z.B. mit color f0 auf schwarze Schrift auf weißem Hintergrund umgeschaltet?
Auch der Dir-Befehl dürfte Ihnen nicht unbekannt sein, mit dessen Hilfe Sie Inhaltsverzeichnisse für ganze Datenträger oder spezielle Ordner ausgegeben haben. Und dann haben Sie sich sicher mit Dir Pfad > Zielordner\Pfadname.txt die Informationen zur Weiterverarbeitung in eine Datei ausgeben lassen.
Auch wenn Sie sich noch nicht tiefer mit dem Thema Batch-Programmierung beschäftigt haben, kennen Sie sicher diese und noch ein paar andere an der Eingabeaufforderung verwendbare Befehle. Aber ist Ihnen auch immer bewusst, dass sie genutzt werden können, weil im Eingabefenster ein Übersetzungsprogramm arbeitet. Der Cmd-Interpreter, in dessen Fenster Sie sich beenden, übersetzt Ihre Eingaben während des Programmlaufs Wort für Wort und bei Batch-Dateien

Zeile für Zeile in Maschinenbefehle. Eine wichtige Option des Cmd-Interpreters ist, dass andere Programme aufgerufen werden können. Diese können ihrerseits wiederum Interpreter sein, die dann im Rahmen des Eingabefensters Zugriff auf ihre eigenen Befehle erlauben. Eines dieser Programme ist z.B. robocom.exe, mit dem wir uns noch detailliert beschäftigen werden.
Wichtig ist: Wenn ein solcher Interpreter aufgerufen wird, gelten dessen Befehle und nicht die des Cmd-Interpreters. Das Fenster wird vom neuen Programm übernommen. Um einen Schritt rückwärts wieder in das ursprüngliche Fenster zu kommen, geben Sie Exit ebenso wie für das Schließen des Cmd-Fensters ein.
Bevor wir uns mit den wichtigsten Befehlen beschäftigen, sollten Sie erst einmal das Eingabefenster Ihren eigenen Wünschen anpassen. Es empfiehlt sich beispielsweise, das Eingabefenster als Benutzer mit Administratorrechten zu nutzen. So vermeiden Sie Passwortabfragen während Ihrer Aktionen.
Platzieren Sie dazu eine Verknüpfung zum Eingabefenster auf dem Desktop. Dann öffnen Sie das Kontextmenü doppelt, einmal auf dem Symbol und dann für Eingabeaufforderung. Mit Eigenschaften öffnen Sie ein Dialogfenster, in dem Ihnen in mehreren Registern diverse Änderungsmöglichkeiten zur Verfügung stehen. Im Register Verknüpfung klicken Sie auf Erweitert. In dem kleinen Zusatzfenster wählen Sie Als Administrator ausführen.

Optimieren Sie als Nächstes die Schriftart, z.B. auf Consolas, und die Schriftgröße, z.B. auf 28 Pixel. Wählen Sie im Register die gewünschten Farben. Danach ändern Sie Höhe und Breite. Das geht zwar gleichfalls über Register Layout im Eigenschaften-Dialog, aber besser ist es, den Dialog zu schließen und das Fenster manuell auf die gewünschte Größe aufzuziehen. So stellen Sie sicher, dass die Ränder Ihres Fensters nicht über die Bildschirmabmessungen hinausgehen. Platzieren Sie eine Verknüpfung auf der Taskleiste des Desktop. Beim nächsten Öffnen werden die geänderten Eigenschaften übernommen.
Es gibt nur zwei Befehle, mit deren Hilfe Sie aus dem Code heraus Fenstereigenschaften ändern. Mit Title = Titeltext ändern Sie den Titel und mit Color BF die Hintergrundfarbe (B) und die Vordergrundfarbe (F). Für diese stehen die schon unter DOS definierten 16 Farben zur Verfügung, BASIC-Programmierern als QBColor-Farben bekannt.
Schaffen Sie sich einen Überblick über die zur Verfügung stehenden Cmd-Befehle. Geben Sie im Eingabefenster HELP ein. Mit help > Laufwerk:\help.txt kopieren Sie die Liste in eine Textdatei zur Weiterverarbeitung. Eine funktional geordnete Liste der wichtigsten CMD-Befehle finden Sie am Ende des Artikels.
Kleine Programme zum Eingewöhnen
Nachdem Sie sich etwas mit den Befehlen vertraut gemacht haben, sollten Sie sie nutzen, um kleine Programme zur Übung zu erstellen. Das erste Programm, das wir Ihnen hier zeigen, enthält schon einige Besonderheiten: Pythagoras hilf.
Ziel ist es, zwei Zahlen einzugeben, um dann mithilfe der Regeln des Pythagoras aus diesen zwei Katheten eines rechtwinkligen Dreiecks die Hypotenuse zu berechnen. Damit lernen Sie schon einige der wichtigsten Regeln der Batchprogrammierung kennen. Wie gibt man Werte ein? Wie werden Variablen verwendet? Welche Symbole gibt es für arithmetische Berechnungen? Betrachten Sie bitte den Code.

Achtung: Wenn Sie unser erstes Listing betrachten, fallen Ihnen sicher die Zeilennummern auf. Die gehören nicht zum Cmd-System und werden von uns nur genutzt, um die Dialoge mit Ihnen zu vereinfachen.
Und das führt uns gleich zu einer wesentlichen Eigenschaft von Batch-Dateien. Sie können sie mit jedem Editor erstellen, der reine Texte ohne Steuerzeichen ausgibt. Wir verwenden PSPad.
Die erste Zeile zeigt eine Art Kommentare. Kommentare werden vom cmd-Interpreter nicht als verarbeitbare Befehle angesehen. Der Inhalt dieser Zeilen wird nicht ausgegeben. In Zeile 2 wird dem title, d.h. der Titelzeile des Eingabefensters ein Text zugewiesen. Zeile 3, cls, löscht den vorher vorhandenen Inhalt des Fensters. In Zeile 4 wird die Ausgabe der Befehle unterbunden.

Wohlgemerk, der Befehle, nicht des Textes, der mit den Zeilen 6 bis 9 zur Information des Benutzers gezeigt wird. Danach folgen zwei Zeilen, in denen (set /p) eine Benutzereingabe erwartet wird. In den beiden Zeilen werden (a= a bzw. b= b) jeweils die eingegebenen Werte einer Variablen zugewiesen. Vor dem Zuweisungsoperator, dem Gleichheitszeichen, steht der Variablenname, dahinter ein Beschreibungstext, der dem Benutzer angezeigt wird. In Zeile 13 erfolgt die Berechnung ("%a% * %a%" + "%b% * %b%") und die Zuweisung des arithmetischen Ergebnisses (set /a c= Berechnung). Die Berechnung weist das Ergebnis der Addition zweier Multiplikationen als Summe der Variablen c zu. echo %c% gibt das Ergebnis auf dem Bildschirm aus. Ganz am Schluss steht der Befehl pause der bewirkt, dass das c md-Fenster erst geschlossen wird, wenn der Benutzer ein Taste drückt.
Herunterfahren über die Befehlszeile
Eine interessante Variante des Beendens von Windows ist es, in den Ruhezustand, engl.: hibernate, also eigentlich den Winterschlaf, zu schalten. Bei dieser Option wird der aktuelle Bildschirminhalt einschließlich aller Daten und Einstellungen auf dem Rechner gespeichert und beim nächsten Start wieder eingelesen. Das beschleunigt das Hochfahren des Rechners.
Gehen Sie in Ihr Eingabefenster, geben Sie die Zeile Shutdown /h ein, und bestätigen Sie die Eingabe. Je nach Umfang Ihres Bildschirminhalts mehr oder weniger schnell fährt der Rechner herunter. Beim Neustart wird Ihr kompletter Zustand vor dem Herunterfahren wiederhergestellt. Das geht erheblich schneller als bei einem Neustart. Es ist etwas umständlich, jeweils erst die Eingabeanforderung zu öffnen und dann die genannte Zeile einzugeben. Einfacher geht das über eine Verknüpfung auf der Taskleiste.

Erstellen Sie eine neue Verknüpfung auf dem Desktop. Als Speicherort geben Sie Shutdown /h ein und für den Namen Ruhezustand. Heften Sie die Verknüpfung an die Taskleiste an. Jetzt genügt ein einfacher Klick auf das Symbol in der Taskleiste, um den Ruhezustand einzuleiten. Wollen Sie mehr über den Befehl Shutdown erfahren? Dann gehen Sie in das Eingabefenster und geben dort Shutdown /? ein. Im Fenster wird eine Beschreibung der Funktionalität in deutscher Sprache angezeigt. Wollen Sie den Befehl besser nutzen? Dann schreiben Sie doch einfach ein Batchprogramm. Unser Listing dient als Beispiel.
Bei diesem Code können wir uns jetzt wohl die detaillierte Beschreibung des Textes sparen. Nur noch so viel: Sie haben echo schon kennengelernt. Hier kommt noch die Variante echo. mit einem Punkt dahinter. So werden auf dem Bildschirm Leerzeilen erzeugt. Interessant ist auch noch die Sprungkaskade abhängig von der Benutzereingabe.
Die Sprungmarke beginnt mit einem Doppelpunkt und bekommt den Namen, der danach in der gleichen Zeile steht.
Speichern Sie das Programm auf Ihrem PC. Legen Sie auf dem Desktop eine Verknüpfung an. Geben Sie als Speicherort den kompletten Dateipfad vor. Als Name empfiehlt sich Herunterfahren. Wenn Sie jetzt als letzte Aktion noch Ihre Verknüpfung auf der Taskleiste platzieren, genügen künftig ein Klick, eine Tastatureingabe und einmal Entertaste, um Windows komfortabel zu beenden.

DIR und Robocopy
Der Befehl DIR listet im Eingabefenster den Inhalt des aktuellen Ordners auf. Mit dem Parameter /S werden die Unterverzeichnisse mit aufgelöst und alle Dateien angezeigt. Mit diesem Befehl können Sie alle Ordner ab einer bestimmten Ebene auflisten. Mit dem Pipe-/Umleitungssymbol > geben Sie die Daten in eine - auch neu zu erstellende - Datei aus. Das sieht dann z.B. so aus: dir /s> Pfad\Dir_Laufwerk.txt. Alle Verzeichnisse und Dateien werden aufgelistet.
Durch den zusätzlichen Parameter /b werden nur die Dateinamen ausgegeben. Um nicht ständig wieder diese Zeile am Prompt eingeben zu müssen, schreiben Sie sich eine Batchdatei Sie können als Ziel durchaus einen Dateinamen im zu durchsuchenden Laufwerk angeben. Nur sollten Sie bei einem späteren Vergleich daran denken, dass die Datei erst nachher hinzugefügt wird und somit schon eine erste Änderung vorliegt.
Von Anfang an zu den DOS-Befehlen gehörte Copy. Er ist etwas pingelig in Bezug auf seine Syntax. Danach folgte xcopy, schon um einiges komfortabler, jetzt gefolgt von robocopy.
Tipp: Fügen Sie vor allem lange Laufwerksnamen mithilfe des Clipboards bei der src- und dest-Variablen ein. Verwenden Sie im Batch-Fenster das Kontextmenü. Wichtig ist bei allen drei Kopierfunktionen, dass Pfadnamen KEINE Leerzeichen enthalten dürfen. Und dass Sie sich angewöhnen, Variablennamen immer kleinzuschreiben.
Funktionalität fremder Programme mit Batch nutzen
Die Kür aber ist die Steuerung fremder Programme über Batch-Befehle. Damit Sie auf Programme zugreifen können, müssen diese entsprechende Schnittstellen zur Verfügung stellen. Eines dieser Anforderung genügenden Programme ist Irfan View. IrfanView ist ein seit vielen Jahren bekanntes, komfortables Betrachtungs- und Konvertierungsprogramm für Bilddateien der unterschiedlichsten Typen. Im Datei-Menü von IrfanView finden Sie einen Menübefehl Batch Konvertierung/Umbenennung.

Um Irfan View über ein externes Skrip zu steuern, stehen eine Vielzahl an Befehlen bereit, die Sie unmittelbar in Batch-Dateien einbinden können. Eine Liste dieser Befehle finden Sie in der Datei i_options.txt. im Programmverzeichnis von Irfan View. Ein praktisches Beispiel: i_view32.exe /slideshow=c:mypics.txt/closeslideshow. Damit startet Irfan View eine Diaschau aus den Bildern, die in der Text-Datei mypics.txt aufgelistet sind.
Wir haben eine Reihe von möglichen Irfan-Batch-Funktionen in einem externen Programm zusammengefast: iview-Batch-Creator, den Sie auch auf der erwähnten Homepage finden. Das Programm erstellt für Sie Batch-Programme, die Sie direkt editieren und Ihren Wünschen anpassen können. Es ist weitgehend selbsterklärend und wird Ihnen beim Einstieg in die Batch-Programmierung gute Hilfsdienste leisten.
Alle Listings und eine Übersicht über CMD-Befehle finden Sie hier:
Gutscheine
-
Uber Eats
5€ mit dem Uber Eats Gutschein sparen Zum Gutschein
bis 30.09.2023+ bis zu 2,50€ Cashback -
eufy
Exklusiver 15% eufy Gutschein auf ALLES Zum Gutschein
bis 01.10.2023+ bis zu 8,0% Cashback(statt40,0€) -
Berliner Kaffeerösterei
Exklusiver 10% Gutschein Code auf ALLES Zum Gutschein
bis 08.10.2023+ bis zu 8,0% Cashback(statt25,0€) -
Geero
EXKLUSIV: 6% Gutschein auf alle Geero2 Modelle Zum Gutschein
bis 27.09.2023+ bis zu 3,0% Cashback(statt15,0€) -
HelloFresh
Bis zu 120€ + GRATIS Versand der 1. Box mit den HelloFresh Rabattcodes Zum Gutschein
bis 31.01.2024+ bis zu 4,00€ Cashback -
Parship
Parship Angebot: 20% mit dem Gutschein sparen Zum Gutschein
bis 30.09.2023