Estou tentando escrever um script cmd do Windows para executar várias tarefas em série. No entanto, ele sempre para após o primeiro comando no script.
O comando que ele interrompe é uma compilação maven (não tenho certeza se isso é relevante).
Como faço para continuar e executar cada tarefa, por sua vez, por favor?
Instalar qualquer software ou configurar o registro, etc, está completamente fora de questão - receio que funcione em uma instalação básica do Windows XP.
Idealmente, eu gostaria que o script fosse cancelado se algum dos comandos falhasse, mas isso é "bom de se ter", não essencial.
Obrigado.
windows
batch-file
scripting
cmd
Grevas de Darren
fonte
fonte
mvn
é um arquivo .bat por si só; portanto, você precisa usácall
-lo como emcall mvn install
; normalmente você não precisa criar um arquivo cmd extra.npm
atualizações eprotractor
testes. Eu acho que essa resposta não se aplicava a mim até que eu percebinpm
eprotractor
sou um.cmd
arquivo no Windows.Você pode usar o símbolo && entre os comandos para executar o segundo comando apenas se o primeiro for bem-sucedido. Mais informações aqui http://commandwindows.com/command1.htm
fonte
start /B /WAIT calc
Não sei por que o primeiro comando está sendo interrompido. Se você pode torná-lo paralelo, você pode tentar algo como
fonte
/K
vez de/C
se desejar que o shell permaneça aberto após a execução do seu comando.cmd.exe
estart
, apenasstart x.bat1
fará.Acabei de fazer a mesma tarefa (ish) de criar um script em lote para executar scripts de teste maven. O problema é que chamar scripts maven com mvn clean install ... é um script e, portanto, precisa ser feito com a chamada mvn clean install.
Código que funcionará
Observe antes o uso da chamada. Isso permitirá o uso de scripts maven consecutivos no arquivo em lotes.
fonte
O uso de "e comercial" duplo executará o segundo comando, apenas se o primeiro for bem-sucedido:
Onde, o uso de apenas um e comercial tentará executar os dois comandos, mesmo se o primeiro falhar:
fonte
Se você estiver executando no Windows, poderá usar o seguinte comando.
Dirigir:
fonte
Não sei a resposta direta à sua pergunta, mas se você executar muitos desses scripts, poderá valer a pena aprender uma linguagem mais poderosa como o perl. Existem implementações gratuitas para Windows (por exemplo, activeestate, cygwin). Eu achei que vale o esforço inicial para minhas próprias tarefas.
Editar:
Conforme sugerido por @Ferruccio, se você não conseguir instalar software extra, considere vbscript e / ou javascript. Eles estão embutidos no host de scripts do Windows.
fonte
Observe que você não precisa de ponto e vírgula em arquivos em lotes. E a razão pela qual você precisa usar a chamada é que o próprio mvn é um arquivo em lotes e os arquivos em lotes precisam se chamar com chamada, caso contrário, o controle não retorna ao chamador.
fonte