Linha de comando - arquivo em lote chamando outro arquivo em lote


13

Eu tenho um arquivo em lotes que chama outro arquivo em lotes 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.

Em foo.bat:

foo.exe -t -s %1

O bar.bat executa o primeiro comando, mas é fechado imitadamente (ou seja, trabalhando apenas no arquivo1.txt ).

Como posso fazer com que esse arquivo em lotes chame o outro arquivo em lotes mais de uma vez?

Respostas:


14

Use a palavra-chave CALL:

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

1
<copiado da resposta de Duncan Smart, apenas para mantê-la unida> Além da resposta de @ splattne, use exit / b no arquivo em lotes CALLed se precisar retornar mais cedo.
263 Brad Brad

1
Você também pode usar goto :eofpara retornar mais cedo. exit /bgeralmente é necessário apenas se você precisar do código de retorno.
Joey

Não sei por que, mas estou lutando para que isso funcione, tentei tanto exit /be goto: eof. Tudo bem anexar a saída do bastão chamado? call foo.bat > myfile
SSH Este

4

Além da resposta de @ splattne, use exit /bno CALLarquivo em lotes ed se precisar retornar mais cedo.


2

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 em lotes a ser processado. Isso também fará uma ligação em vez de uma cadeia e até funcionará em máquinas verdadeiramente antigas (apenas no caso de alguém passar por isso e se importar). :-)


0

@echo off

eco WbLegalReport.cmd

Eu:

CD I: \ CFS \ Batch \ jarDir

eco% CD%

WbLegalReport.cmd

eco% CD%

echo WatchResrAddDeleted.cmd

eco% CD%

WatchRestrAddDeleted.cmd

eco% CD%

O que estou tentando fazer aqui é chamar esses dois arquivos em lotes em uma sequência.

Não foi possível fazer isso.

ajuda por favor.

Na verdade, está falhando no script filho, pois o controle não retorna ao script principal


0

Sanket, não chame o arquivo em lotes diretamente. Use o comando "CHAMAR". Veja o exemplo de splattne .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.