In einer inneren Batch-Datei goto zur äußeren Batch-Datei aufrufen



  • Ich habe zwei Batch-Dateien von denen die zweite innerhalb der ersten aufgerufen wird.

    Ist es möglich, innerhalb der zweiten Datei per goto zu einem Label zu gehen, das sich innerhalb der ersten Datei befindet?

    Batch 1:

    call Batch2.bat
    
    :end
    

    Batch 2:

    goto end
    

    Das ganze müste unter der Command Shell in Windows XP und höher funktionieren.



  • Badger schrieb:

    Ist es möglich, innerhalb der zweiten Datei per goto zu einem Label zu gehen, das sich innerhalb der ersten Datei befindet?

    Ne, wüsste nicht wie.
    Wenn du das brauchst, dann pack doch den Inhalt der 2. Batch-Datei mit in die 1. rein.



  • Vielleicht soll die batch2 sowas wie eine funktionsbibliothek sein.

    Dann sie anfangen lassen mit

    goto %1
    


  • hustbaer schrieb:

    Wenn du das brauchst, dann pack doch den Inhalt der 2. Batch-Datei mit in die 1. rein.

    Könnte ein bisschen unübersichtlich werden, vor allem wenn es mehrere Sub-Batches gibt.

    Es geht darum, dass ich diverse Sachen mit Dateien mache und wenn eine bestimmte Datei nicht erstellt werden konnte, soll der ganze Vorgang stoppen:

    Batch 1:

    call Batch2 File1
    call Batch2 File2
    call Batch2 File3
    
    goto end
    
    :error
    
    echo An error occured.
    
    :end
    

    Batch 2:

    echo Processing file %1
    bla %1
    
    if not exist %1 goto error
    

  • Mod

    Rückgabewerte? Gibt's doch gewiss auch in Windows-Batch.



  • ja, gibts
    statt goto end einfach

    exit /b 1
    

    machen.

    EDIT: Wobei 1 der gewünschte Exit-Code ist -- kann man natürlich auch jeden anderen nehmen. /EDIT

    @Badger
    und btw: "end" label muss man nicht selbst machen, goto :eof funktioniert immer.


Anmelden zum Antworten