Use a palavra-chave CALL:
call foo.bat file1.txt
call foo.bat file2.txt
Eu tenho um arquivo de lote que chama outro arquivo de lote que existe no diretório PATH (basicamente chamando um executável com opções adicionais).
: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.
No foo.bat:
foo.exe -t -s %1
bar.bat executa o primeiro comando, mas sai imeditamente (ou seja, trabalhando apenas em file1.txt ).
Como posso fazer esse arquivo em lotes invocar o outro arquivo em lote mais de uma vez?
Além da resposta de @ splattne, use exit /b
no arquivo em lote CALL
ed se precisar retornar antes.
Outra opção (para compatibilidade com o DOS anterior à versão 3.3 :-)) é chamar o processo de comando com a opção filho (/ c) e o nome do outro arquivo de lote a ser processado. Isso também fará uma chamada em vez de uma corrente, e até mesmo funcionará em máquinas verdadeiramente antigas (apenas no caso de alguém passar por isso e se importar). : -)
@echo off
echo WbLegalReport.cmd
i:
cd I: \ CFS \ Batch \ jarDir
echo% CD%
WbLegalReport.cmd
echo% CD%
echo WatchResrAddDeleted.cmd
echo% CD%
WatchRestrAddDeleted.cmd
echo% CD%
O que estou tentando fazer aqui é chamar esses dois arquivos em lote em uma sequência.
Não é possível fazer isso.
ajude por favor.
Acutally está falhando no script filho, já que o controle não retorna ao script principal
Sanket, não chame o arquivo em lote diretamente. Use o comando "CALL". Veja o exemplo do splattne .