Wenn Sie bis jetzt nicht geraten haben, können Batch-Dateien als rudimentäre Art von Programmiersprache dienen. Eine Sache, die moderne Programmiersprachen bieten, ist die Möglichkeit, Code in kleine Teile zu modularisieren, sodass Sie nicht riskieren, versehentlich einen nicht verwandten Code zu ändern, wenn Sie einen Teil ändern. Sie können eine große Batchdatei modularisieren, indem Sie sie in kleinere aufteilen und mit der CALL-Anweisung die einzelnen Module nach Bedarf aufrufen.

Nehmen wir den Fall eines Menüsystems, mit dem der Benutzer eine Reihe von Funktionen aufrufen kann. Wir werden jede der Funktionen in eine eigene Batch-Datei einfügen und mit der CALL-Anweisung in der Batch-Datei des Hauptmenüs die ausgewählte Funktion aufrufen, die dann zum Menü zurückkehrt, damit der Benutzer eine andere Funktion auswählen kann.

So könnte Menu.bat aussehen:

@ECHO OFF :TOP CLS ECHO   Welcome to the Main Menu! Here are your choices...

ECHO.

ECHO A) Perform Function A          B) Perform Function B ECHO C) Perform Function C          D) Perform Function D ECHO.

ECHO Q) Quit ECHO.

CHOICE /C ABCDQ GOTO %ERRORLEVEL% :5 GOTO :EOF :4 CALL FuncD.bat GOTO TOP :3 CALL FuncC.bat GOTO TOP :2 CALL FuncB.bat GOTO TOP :1 CALL FuncA.bat GOTO TOP

Und so könnte FuncA.bat aussehen:

ECHO This is Function A PAUSE

Trotz der Tatsache, dass hier nichts Interessantes passiert, ist dies der Beginn eines anständigen Frameworks für ein befehlsbasiertes Menüsystem. Und es gibt einige Punkte, die beachtet werden sollten. Der erste neue Befehl, auf den wir stoßen, ist der CLS-Befehl. Dieser einfache Befehl löscht nur den Bildschirm, sodass unser Menü von selbst immer gut aussieht. Das anspruchsvolle Auge wird auch einige ECHO-Aussagen bemerken, auf die unmittelbar ein Punkt folgt. So geben Sie eine Leerzeile aus. Ein weiteres neues Element ist das integrierte EOF-Label. Dadurch entfällt die Notwendigkeit, ein eigenes Label zu deklarieren, das als letzte Zeile der Datei vorhanden ist (wie mein in anderen Tipps verwendetes Label „: Done“).

Dies führt uns zu den CALL-Anweisungen. Der mit CALL angegebene Parameter ist der Name der Batchdatei, die als nächstes aufgerufen werden soll. Wenn der Benutzer beispielsweise Option A aus dem Menü auswählt, wechselt die Batch-Datei sofort zum Label: 1, wodurch FuncA.bat als Nächstes aufgerufen wird. Meine FuncA.bat-Datei ECHOs einfach eine Zeile und macht eine PAUSE. Die PAUSE-Anweisung bewirkt die Ausgabe einer Zeile mit der Aufschrift „Drücken Sie eine beliebige Taste, um fortzufahren …​“. Anschließend wird die Ausführung der Batchdatei angehalten, bis der Benutzer eine Taste drückt. Sobald eine Taste gedrückt wird, wird die Batch-Datei fortgesetzt. In diesem Fall wird FuncA.bat beendet und die Steuerung wird in der Batch-Datei des Hauptmenüs in der Zeile unmittelbar nach dem Aufruf von FuncA.bat fortgesetzt. Das nächste, was passieren wird, ist das GOTO TOP, das alles von vorne anfängt.

Beachten Sie, dass Sie oben in FuncA.bat kein weiteres „@ECHO OFF“ setzen müssen, da der ECHO-Status beim Aufruf von FuncA.bat beibehalten wird.

Dieser Tipp (13187) gilt für Windows 7, 8 und 10.