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.
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)