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?

Odpowiedzi:


14

Użyj słowa kluczowego CALL:

call foo.bat file1.txt
call foo.bat file2.txt

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.


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). :-)


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


0

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.