Batchaufruf per CALL aus einer 1.Batch und dortiger Verarbeitung ausschließlich eines Labels
Werte Batch-Freunde
Eine 2.Batch aus einer Ur-Batch aufzurufen mithilfe von Steuervariablen und den Schritt zurück bekomme ich hin.
Aber kann ich das auch anderes lösen ?
Diese Batch1 ruft in einer batch2 ein bestimmtes Label auf und verläßt nach Abarbeitung des Labels die Batch2
Das ganze 2x
Gibt es andere Möglichkeiten ?
Lieben Dank für Euere Antworten ... !!!!!
[Edit Biber] Als Code formatiert. [/Edit]
Eine 2.Batch aus einer Ur-Batch aufzurufen mithilfe von Steuervariablen und den Schritt zurück bekomme ich hin.
Aber kann ich das auch anderes lösen ?
Diese Batch1 ruft in einer batch2 ein bestimmtes Label auf und verläßt nach Abarbeitung des Labels die Batch2
Das ganze 2x
REM BAT1
@echo off
cls
echo ____ 1.Aufruf bat2.bat step1 ___
call bat2.bat step1 ende
echo zurück in bat1.bat
rem
echo ____ 2.Aufruf bat2.bat step2 ____
call bat2.bat step2 ende
echo zurück in bat1.bat
:ende
REM BAT2
@echo on
if "%2" equ "" (
echo Spung zum Label ok ... aber :
echo keinen Ausstiegsparameter angegeben. Abbruch.
pause
goto ende
)
for %%v in ( step1 step2 ) do if "%1" equ "%%v" goto %%v
:step1
echo Befehle ......
if "%2" equ "ende" goto ende
:step2
echo Befehle ......
if "%2" equ "ende" goto ende
:ende
Gibt es andere Möglichkeiten ?
Lieben Dank für Euere Antworten ... !!!!!
[Edit Biber] Als Code formatiert. [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176737
Url: https://administrator.de/forum/batchaufruf-per-call-aus-einer-1-batch-und-dortiger-verarbeitung-ausschliesslich-eines-labels-176737.html
Ausgedruckt am: 18.04.2025 um 19:04 Uhr
6 Kommentare
Neuester Kommentar
Moin Batchfan,
zur Beantwortung deiner Frage müssten wir vielleicht dein Ziel, den grossen Plan kennen.
Meine erste Gegen-Frage wäre:
Warum sind denn zwei (oder zweiundzwanzig?) Einzel-One-Trick-Batches sinnvoller und wartbarer als EINE Batchdatei?
Es geht auch mit "Call :BlockInDerGleichenBatchdatei auchMitParameter1 undPara2 usw"
Bei Sprungmarken musst du immer ein explizites "goto RausAusDemJob" oder "goto VersuchsNochMal" angeben nach jedem Block/Label.
Ist nicht sehr flexibel und schon gar nicht wartbar.
Du siehst ja keinemMädel Label an, wer es wann und von wo anspringt.
Besser ist schon eine Mimik mit geCALLten internen Unterroutinen und deren Rückkehr zu der aufrufenden Zeile.
Grüße
Biber
zur Beantwortung deiner Frage müssten wir vielleicht dein Ziel, den grossen Plan kennen.
Meine erste Gegen-Frage wäre:
Warum sind denn zwei (oder zweiundzwanzig?) Einzel-One-Trick-Batches sinnvoller und wartbarer als EINE Batchdatei?
Es geht auch mit "Call :BlockInDerGleichenBatchdatei auchMitParameter1 undPara2 usw"
Bei Sprungmarken musst du immer ein explizites "goto RausAusDemJob" oder "goto VersuchsNochMal" angeben nach jedem Block/Label.
Ist nicht sehr flexibel und schon gar nicht wartbar.
Du siehst ja keinem
Besser ist schon eine Mimik mit geCALLten internen Unterroutinen und deren Rückkehr zu der aufrufenden Zeile.
Grüße
Biber
Aloha,
auch wenn mir das ebenso halb-sinnig erscheint, du könntest doch in der 1. Batch
oder wenn du (ich blick deine Struktur heute nicht) unbedingt
greetz André
auch wenn mir das ebenso halb-sinnig erscheint, du könntest doch in der 1. Batch
call batch2.bat :Marke
aufrufen und in der zweiten Batch@echo off
call %1
goto :eof
echo Nicht in der Marke
pause
goto :eof
:Marke
echo Mittendrin
goto :eof
oder wenn du (ich blick deine Struktur heute nicht) unbedingt
%2
auf ende
abfragen willst, dann eben per call batch2.bat :Marke ende
die zwete aufrufen.greetz André
Moin Batchfan,
bitte benutze Codeformatierung.
Füge in Bat4.bat zwischen der 3.ten Zeile ("call %1") und Zeile 4 (":step1") eine neue Zeile ein mit "goto :eof"
Die Ausgabe sollte sich ändern in
1.Aufruf bat3.bat step1
Hier ist bat4.bat step1
zurück in bat3.bat
2.Aufruf bat3.bat step2
Hier ist bat4.bat step2
zurück in bat3.bat
Grüße
Biber
bitte benutze Codeformatierung.
Füge in Bat4.bat zwischen der 3.ten Zeile ("call %1") und Zeile 4 (":step1") eine neue Zeile ein mit "goto :eof"
Die Ausgabe sollte sich ändern in
1.Aufruf bat3.bat step1
Hier ist bat4.bat step1
zurück in bat3.bat
2.Aufruf bat3.bat step2
Hier ist bat4.bat step2
zurück in bat3.bat
Grüße
Biber