thecranky
Goto Top

Goto von gecallter .bat in gestarteter bat?

kurz erklärt schwer :/

Hallo community,

Ich habe eine start.bat geschrieben

@echo off

call abc.bat

echo Dieser Text wurde durch das goto :123 in der abc.bat nicht übersprungen

Pause
exit

:123
echo Und schüss!

Pause
exit

in der abc.bat steht
echo goto test.

Pause

goto :123

aber irgendwie springt er nicht zurück und macht bei "echo Dieser text wur..." weiter statt zu :123 zu springen.

oder geht das garnet, alternative?

MfG TheCranky

Content-Key: 151776

Url: https://administrator.de/contentid/151776

Printed on: April 25, 2024 at 13:04 o'clock

Member: D3S3RT
D3S3RT Sep 26, 2010 at 14:12:06 (UTC)
Goto Top
woher soll die zweite bat datei wissen, dass es die erste gibt?
sie versucht natürlich zu :123 zu springen, aber das gibts nicht, daher ende..
die erste datei kriegt dann mit "datei 2 fertig", also weiter in der liste. und dann hast du die nächste echt zeile.
Member: TheCranky
TheCranky Sep 26, 2010 at 14:29:49 (UTC)
Goto Top
schade...

also meine 2. bat beinhaltet dies:

cls
echo.
echo     ###################################################################
echo     ###                                                             ###
echo     ###                                                             ###
echo     ###              INTERNETVERBINDUNG WIRD GESUCHT                ###
echo     ###                                                             ###
echo     ###                                                             ###
echo     ###################################################################


ping -n 1 %IP% >NUL || (wait 4000 & goto :InetOff)

wait 4000

goto :InetOn

also muss ich wohl oder über das in die erste bat mit reinpacken!????

beide :befehle stehen in der ersten bat
Mitglied: 76109
76109 Sep 26, 2010 at 14:39:58 (UTC)
Goto Top
Hallo TheCranky!

Ungeachtet dem Sinn des Ganzen.

Goto-Anweisungen können nur innerhalb einer Batch-Datei erfolgen. Für externe Aufrufe musst Du die Exit-Anweisung verwenden und einen Errorlevel-Test machen z.B.:

Batch TestA.Cmd
@echo off

echo Ich bin BatchA und starte BatchB

Call TestB.cmd

echo BatchB hat %Errorlevel% zurueckgegeben

If %Errorlevel%==0 Goto :eof

Echo Bei Errorlevel 1 gehts hier weiter...

Batch TestB.Cmd
@echo off

Echo Ich bin Batch TestB und gebe einen Errorlevel zurueck

Exit /b 0	Rem Exit 0 oder 1

Gruß Dieter
Member: TheCranky
TheCranky Sep 26, 2010 at 14:49:57 (UTC)
Goto Top
wenn ich das richtig verstanden hab, müste ich das machen...

abc.bat
cls
echo.
echo     ###################################################################
echo     ###                                                             ###
echo     ###                                                             ###
echo     ###              INTERNETVERBINDUNG WIRD GESUCHT                ###
echo     ###                                                             ###
echo     ###                                                             ###
echo     ###################################################################


ping -n 1 %IP% >NUL || (wait 4000 & Exit /b 0)

wait 4000

Exit /b 1

start.bat
call abc.bat

If %Errorlevel%==0 Goto :InetOff

Goto :InetOn
oder
call abc.bat

If %Errorlevel%==0 Goto :InetOff
If %Errorlevel%==1 Goto :InetOn

Zitat von @76109:
Ungeachtet dem Sinn des Ganzen.

Weil ich nicht alles in eine Datei stecken möchte, für den Überblick.

es sind später so viele befehle das ich nicht mehr weis was ich mache
Mitglied: 76109
76109 Sep 26, 2010 at 15:40:27 (UTC)
Goto Top
Hallo TheCranky!

Zitat von @TheCranky:
wenn ich das richtig verstanden hab, müste ich das machen...
Yepp, dass hast Du richtig verstandenface-wink

Gruß Dieter