2010-12-08 4 views
24

ich eine Batch-Datei, die Kopien Ameise und führt dann eine der Dateien, die produziert wurden:Laufende Ameise aus einer Batch-Datei: Später Befehle laufen nicht

ant -Dproject.version=1.1.2 release published 
copy /Y D:\dir1\MyJar.jar D:\dir2\MyJar.jar 

Wenn ich die Batchdatei ausführen, ant läuft erfolgreich, aber die copy-Anweisung passiert nie, obwohl es gut funktioniert, wenn ich es eintippe und Enter drücke, nachdem die ant-Aufgabe beendet wurde.

Was geht hier vor?

+0

"nie passiert" - ohne irgendwelche Nachrichten? Vielleicht ist das Ausführen des Verzeichnisses nicht das Gleiche wie Sie versuchen, es manuell auszuführen? – khachik

Antwort

43

Ich hatte das gleiche Problem einmal und die Magie call tat es.

In dieser Batch-Datei von Ihnen versuchen:

call ant -Dproject.version=1.1.2 release published 
copy /Y D:\dir1\MyJar.jar D:\dir2\MyJar.jar 

kann Ihnen nicht sagen, warum es, obwohl gearbeitet. Raten Sie, es ist Microsoft-Logik.

+16

Das liegt daran, dass "ant" eine Batch-Datei ist. Wenn Sie einen Stapel von einem anderen aufrufen, müssen Sie 'call' verwenden. Aber ja, das ist manchmal nicht sehr klar. – Joey

+0

Es funktioniert so lange, wie Sie die Ausgabe von ant nicht auf eine Datei richten: call ant target >> log.log. Dann geht es nicht weiter. – Ixx

8

Wenn Sie eine Batch-Datei von einem anderen rufen CALL (oder call) verwenden Sie (die nicht immer klar ist) sind angeblich, sonst ist es eher wie goto und nicht wieder zurück an den Anrufer arbeitet. Ist ant eigentlich eine Batch-Datei ant.bat? Dies sollte dann funktionieren:

CALL ant -Dproject.version=1.1.2 release published 
Verwandte Themen