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

13

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?

    
por Dani 26.05.2009 / 09:40

5 respostas

14

Use a palavra-chave CALL:

call foo.bat file1.txt
call foo.bat file2.txt
    
por 26.05.2009 / 09:44
4

Além da resposta de @ splattne, use exit /b no arquivo em lote CALL ed se precisar retornar antes.

    
por 26.05.2009 / 13:18
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 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). : -)

    
por 26.05.2009 / 14:24
0

@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

    
por 04.08.2009 / 07:25
0

Sanket, não chame o arquivo em lote diretamente. Use o comando "CALL". Veja o exemplo do splattne .

    
por 04.08.2009 / 09:20