Wie kann ich in Batch eine Funktion einer anderen Batch-Datei aufrufen?
Ich habe die Batch-Dateien "x.bat" und "y.bat". "y.bat" enthält eine Funktion ":test", welche ich mit "x.bat" aufrufen möchte. Ich hab schon einiges mit call probiert, bisher aber nicht geschafft.
@echo off
call "y.bat" :test
pause >nul
exit
Ich weiss, dass ":test" so wie es jetzt ist als Parameter übergeben wird, wäre nett, wenn das jemand korrigieren könnte. Vielen Dank! :)
3 Antworten
Damit dass so funktioniert, muss die y.bat zur übergebenen Sprungmarke springen. Für den Fall, dass sie ohne Argumente aufgerufen wird, soll sie einfach normal laufen (ohne irgendwo hinzuspringen).
------------- y.bat ----------------
@echo off
if not "%~1"=="" goto %~1
echo Deine Main-Funktion
exit
:test
echo Deine Test-funktion
exit /b
Dann funktioniert auch deine x.bat. (Die : vor test kannst du übrigens weglassen)
~Tim
In y.bat abfragen, was übergeben wurde, mit %1 - also Inhalt von y.bat:
IF "%1"==":test" (GOTO :test) ELSE (GOTO :main)
Hat sich deine Frage mit meiner Antwort geklärt?
Wenn ja würde ich mich über die Hilfreichste Antwort freuen (bin grad kurz davor Experte in Batch zu werden ;)
wenn nicht schreib mir was noch fehlt oder nicht optimal funktioniert.
Beste Grüße,
Tim