Por que meu script em lote não executa todas as linhas?

5

Eu quero criar um script em lote que execute o eixo wsdl2java.bat . vários WSDLs. Quando eu criar um script em lote apenas com este código:

wsdl2java.bat
wsdl2java.bat

rodaria wsdl2java.bat apenas uma vez. Eu acho que há algo com script em lote wsdl2java.bat .

Alguém pode me ajudar a descobrir qual é a causa raiz do problema?

    
por dugokontov 02.08.2011 / 10:30

3 respostas

10

Para a compatibilidade com COMMAND da Microsoft, o CMD da Microsoft tem a semântica bizarra que invoca um script de comando dentro de outro script de comando que finaliza o script de comando invocado nesse ponto.

A solução correta para isso não é o comando START . Também não está invocando um processo de intérprete de comando subsidiário com CMD (especialmente erroneamente usando também /K para /C ). É - e tem sido há algumas décadas - o comando CALL .

call wsdl2java.bat
call wsdl2java.bat
    
por 02.08.2011 / 13:24
1

Use cmd.exe /k filename.bat para iniciar cada arquivo batch.

    
por 02.08.2011 / 11:00
0

Se bem me lembro, o Windows alterna completamente para o novo arquivo de lote quando você o inicia em outro arquivo de lote e não retorna.

A solução alternativa seria executar

start wsdl2java.bat

- novamente, apenas do topo da minha cabeça. Não consegui encontrar uma fonte confiável na minha curta pesquisa no google.

Update: como JdeBP apontou, o meu é o caminho errado old . Pode ter sido óbvio demais que eu não tenha tocado as entranhas do MSDOS ou do Windows CMD-shell ou como ele é chamado hoje em dia há algumas décadas.

Update2: jeez, eu disse "fora do topo da minha cabeça".

    
por 02.08.2011 / 10:52