Ich versuche, ein Windows-Cmd-Skript zu schreiben, um mehrere Aufgaben in Reihe auszuführen. Es stoppt jedoch immer nach dem ersten Befehl im Skript.
Der Befehl, nach dem es stoppt, ist ein Maven-Build (nicht sicher, ob dies relevant ist).
Wie mache ich es bitte weiter und führe jede Aufgabe der Reihe nach aus?
Das Installieren von Software oder das Konfigurieren der Registrierung usw. kommt überhaupt nicht in Frage - es muss leider bei einer Vanilla Windows XP-Installation funktionieren.
Idealerweise möchte ich, dass das Skript abgebrochen wird, wenn einer der Befehle fehlschlägt, aber das ist ein "nice to have", nicht unbedingt erforderlich.
Vielen Dank.
windows
batch-file
scripting
cmd
Darren Greaves
quelle
quelle
mvn
eine .bat-Datei für sich, daher müssen Siecall
sie wie in verwendencall mvn install
. Normalerweise müssen Sie keine zusätzliche Cmd-Datei erstellen.npm
Updates undprotractor
Tests etwas Ähnliches zu tun . Ich glaube nicht , diese Antwort auf mich angewendet , bis ich realisiertnpm
undprotractor
sind.cmd
Dateien unter Windows.Sie können das Symbol && zwischen Befehlen verwenden, um den zweiten Befehl nur auszuführen, wenn der erste erfolgreich ist. Weitere Infos hier http://commandwindows.com/command1.htm
quelle
start /B /WAIT calc
Ich bin mir nicht sicher, warum der erste Befehl gestoppt wird. Wenn Sie es parallel machen können, können Sie so etwas versuchen
quelle
/K
anstelle von,/C
wenn die Shell nach Ausführung Ihres Befehls geöffnet bleiben soll.cmd.exe
undstart
wird einfachstart x.bat1
tun.Ich habe gerade genau die gleiche (ish) Aufgabe ausgeführt, ein Batch-Skript zum Ausführen von Maven-Testskripten zu erstellen. Das Problem ist, dass das Aufrufen von Maven-Skripten mit mvn clean install ... selbst ein Skript ist und daher mit dem Aufruf von mvn clean install durchgeführt werden muss.
Code, der funktionieren wird
Beachten Sie eher die Verwendung von Anruf. Dies ermöglicht die Verwendung aufeinanderfolgender Maven-Skripte in der Batch-Datei.
quelle
Bei Verwendung von doppeltem kaufmännischem Und wird der zweite Befehl nur ausgeführt, wenn der erste erfolgreich ist:
Wobei as mit nur einem kaufmännischen Und versucht, beide Befehle auszuführen, auch wenn der erste fehlschlägt:
quelle
Wenn Sie unter Windows ausgeführt werden, können Sie den folgenden Befehl verwenden.
Fahrt:
quelle
Ich kenne die direkte Antwort auf Ihre Frage nicht, aber wenn Sie viele dieser Skripte erstellen, lohnt es sich möglicherweise, eine leistungsfähigere Sprache wie Perl zu lernen. Für Windows gibt es kostenlose Implementierungen (z. B. Activestate, Cygwin). Ich habe festgestellt, dass sich die anfängliche Anstrengung für meine eigenen Aufgaben lohnt.
Bearbeiten:
Wenn Sie keine zusätzliche Software installieren können, sollten Sie, wie von @Ferruccio vorgeschlagen, vbscript und / oder javascript in Betracht ziehen. Sie sind in den Windows-Skripthost integriert.
quelle
Beachten Sie, dass Sie in Batchdateien keine Semikolons benötigen. Der Grund, warum Sie call verwenden müssen, ist, dass mvn selbst eine Batch-Datei ist und Batch-Dateien sich gegenseitig beim Aufruf aufrufen müssen, andernfalls kehrt die Steuerung nicht zum Anrufer zurück.
quelle