Fehlende Sprungmarke in Batch

In einem fremden Batch-Skript ist mir die Zeile "Goto :EOF" aufgefallen. Das Skript funktioniert, obwohl es die Sprungmarke ":EOF" in der Datei nicht gibt.

vorlesen Druckansicht
Lesezeit: 1 Min.

Bei der Durchsicht eines von einem ehemaligen Kollegen geschriebenen Batch-Skripts ist mir die Zeile Goto :EOF aufgefallen. Eine Sprungmarke mit dem Namen :EOF ist im Skript aber nicht zu finden. Was mich noch mehr verblĂĽfft hat: Trotzdem scheint das Skript klaglos zu funktionieren. Wie hat der Kollege das hinbekommen?

Die drei Buchstaben stehen fĂĽr "End Of File". Der Befehl Goto :EOF springt demzufolge ans Dateiende, und weil dort keine Befehlszeilen mehr stehen, endet die Abarbeitung des Skripts durch den Interpreter.

Sie können sich :EOF also wie eine unsichtbare Sprungmarke vorstellen, die als letzte Zeile in einem Batch-Skript steht.

Der Befehl funktioniert übrigens nur, wenn die Befehlserweiterungen aktiv sind. Das ist jedoch bei allen aktuellen Windows-Versionen standardmäßig der Fall. Zur Sicherheit können Sie die Erweiterungen in einem Batch-Skript mit dem Befehl setlocal enableextensions erzwingen.

Ebenfalls beenden können Sie ein Skript mit exit /b.

(axv)