Dlaczego wywołanie zagnieżdżonego pliku wsadowego bez poprzedzającego „wywołania” do linii powoduje wyjście z nadrzędnego pliku wsadowego?
Rozumiem, jak wywoływać zagnieżdżone pliki wsadowe z pliku nadrzędnego za pomocącall
polecenie, ponieważ jest na to mnóstwo zasobów:
Jednak nie rozumiemczemu wywołanie innego pliku wsadowego z innego kończy działanie rodzica.
Dla mniej abstrakcyjnego przykładu załóżmy, że mam plik wsadowy, który „łączy” osobne pliki wsadowe i Imylnie nie prependcall
do każdej linii:
foo.bat
bar.bat
Spowoduje to wykonanie tylko foo.bat, a następnie wyjście. Aby poprawnie wykonać oba polecenia, musiałbym poprzedzić wywołanie przed każdą instrukcją:
call foo.bat
call bar.bat
Dlaczego pierwsza funkcjonalność nadal istnieje? Dlaczego nie został zmieniony? zauważyłem tocall
został wprowadzony w MS-DOS 3.3, który został wydany pod koniec lat 80., więc czy ta funkcja jest nadal dostępna w celu zapewnienia kompatybilności odwrotnej?
Nie potrafię wymyślić żadnych (praktycznych) zastosowań, ale być może jestem zbyt przyzwyczajony do „nowych” technik programowania.