L'exécution de plusieurs commandes à partir d'un Windows script cmd
Je suis en train d'écrire un Windows cmd script d'effectuer plusieurs tâches en série.
Cependant, il s'arrête toujours après la première commande dans le script.
La commande qu'il s'arrête après un maven build (pas sûr si c'est pertinent).
Comment puis-je faire continuer et exécuter chaque tâche à son tour, s'il vous plaît?
L'installation de tout logiciel ou de configuration du registre etc est totalement hors de question, il doit travailler sur une vanille d'installation de Windows XP, j'ai peur.
Idéalement, j'aimerais que le script d'avorter si l'une des commandes n'a pas, mais c'est un "nice to have", n'est pas essentiel.
Grâce.
Vous devez vous connecter pour publier un commentaire.
Lorsque vous appelez un autre .le fichier bat, je pense que vous avez besoin "d'appel" en face de l'appel:
mvn
est un .fichier bat par lui-même, donc vous devez utilisercall
comme danscall mvn install
; normalement, vous n'avez pas besoin de créer un supplément de fichier cmd.npm
mises à jour etprotractor
tests. Je ne pense pas que cette réponse s'appliquait à moi jusqu'à ce que j'ai réalisénpm
etprotractor
sont.cmd
des fichiers sur Windows.Vous pouvez utiliser le && symbole entre les commandes à exécuter la deuxième commande que si la première réussit. Plus d'info ici http://commandwindows.com/command1.htm
calc && echo foo
résultats dans la calculatrice en cours de démarrage et "foo" être imprimé immédiatement? Comment puis-je commencercalc
en sorte qu'il bloque l'environnement windows, comme le bash n'est sans&
?start /B /WAIT calc
Pas sûr pourquoi, la première commande est en cours d'arrêt.
Si vous pouvez le faire en parallèle, vous pouvez essayer quelque chose comme
/K
au lieu de/C
si vous voulez la coquille de rester ouvert après que votre commande a été exécutée.cmd.exe
etstart
, justestart x.bat1
fera.J'ai juste fait exactement le même(ish) la tâche de créer un script batch pour exécuter maven scripts de test. Le problème, c'est que l'appel à maven de scripts avec mvn clean install ... est lui-même un script et donc a besoin d'être fait appel mvn clean install.
Code qui fonctionnera
Note plutôt l'utilisation de l'appel. Cela permettra l'utilisation consécutive de maven scripts dans le fichier de commandes.
À l'aide de doubles & va exécuter la deuxième commande, uniquement si le premier réussit:
Où en utilisant seulement un signe tentera d'exécuter les deux commandes, même si la première tentative échoue:
Si vous êtes sous Windows, vous pouvez utiliser la commande suivante.
Lecteur:
Je ne sais pas la réponse directe à votre question, mais si vous faites beaucoup de ces scripts, il peut être vaut la peine d'apprendre un plus puissant langage comme perl. Implémentations libres existent pour Windows (par exemple, activestate, cygwin). J'ai trouvé ça vaut de l'effort initial pour mes propres tâches.
Edit:
Comme suggéré par @Ferruccio, si vous ne pouvez pas installer de logiciel supplémentaire, envisager de vbscript et/ou javascript. Ils sont intégrés dans Windows scripting host.
Notez que vous n'avez pas besoin des points-virgules dans les fichiers batch. Et la raison pourquoi vous avez besoin pour utiliser l'appel, c'est que mvn lui-même est un lot de fichiers et les fichiers de commandes besoin de s'appeler les uns les autres avec appel, sinon le contrôle, ne pas retourner à l'appelant.