Wiersz poleceń - plik wsadowy wywołujący inny plik wsadowy

13

Mam plik wsadowy, który wywołuje inny plik wsadowy, który istnieje w katalogu PATH (w zasadzie wywołuje plik wykonywalny z dodatkowymi przełącznikami).

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

W foo.bat:

foo.exe -t -s %1

bar.bat wykonuje pierwsze polecenie, ale kończy się natychmiast (tzn. działa tylko na pliku file1.txt ).

Jak mogę ustawić ten plik wsadowy, aby wywoływał inny plik wsadowy więcej niż jeden raz?

Dani
źródło

Odpowiedzi:

14

Użyj słowa kluczowego CALL:

call foo.bat file1.txt
call foo.bat file2.txt
splattne
źródło
1
<skopiowane z odpowiedzi Duncana Smarta, tylko dla zachowania razem> Oprócz odpowiedzi @ splattne, użyj exit / bw CALLed pliku wsadowym, jeśli chcesz wrócić wcześniej.
Brad Bruce
1
Możesz także użyć, goto :eofaby wrócić wcześniej. exit /bjest zwykle potrzebny tylko wtedy, gdy potrzebujesz kodu powrotu.
Joey,
Nie wiem dlaczego, ale staram się, aby to zadziałało, próbowałem obu exit /bi goto: eof. Czy można dodawać wyjście nietoperza CALLed? call foo.bat > myfile
SSH,
4

Oprócz odpowiedzi @ splattne, użyj exit /bw CALLpliku wsadowym ed, jeśli chcesz wrócić wcześniej.

Duncan Smart
źródło
2

Inną opcją (dla zgodności z DOS przed wersją 3.3 :-)) jest wywołanie procesu polecenia z opcją potomną (/ c) i nazwą innego pliku wsadowego do przetworzenia. To również wykona połączenie zamiast łańcucha, a nawet zadziała na naprawdę pradawnych maszynach (na wypadek, gdyby ktoś natknął się na to i dba o to). :-)

Brian Knoblauch
źródło
0

@echo wyłączone

echo WbLegalReport.cmd

ja:

cd I: \ CFS \ Batch \ jarDir

echo% CD%

WbLegalReport.cmd

echo% CD%

echo WatchResrAddDeleted.cmd

echo% CD%

WatchRestrAddDeleted.cmd

echo% CD%

Próbuję tutaj wywołać te dwa pliki wsadowe w sekwencji.

Nie można tego zrobić.

prosimy o pomoc.

W rzeczywistości nie działa w skrypcie potomnym, ponieważ formant nie wraca do skryptu głównego


źródło
0

Sanket, nie wywołuj bezpośrednio pliku wsadowego. Użyj polecenia „CALL”. Zobacz przykład splattne .

pepoluan
źródło