2010-12-08 3 views
24

У меня есть пакетный файл, который запускает муравей и затем копирует один из файлов, которые были произведены:Запуск муравья из пакетного файла: Последующие команды не работают

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

Когда я запустить пакетный файл, муравей запускается успешно, но оператор копирования никогда не бывает, хотя он будет работать нормально, если я наберу его и нажму Enter после завершения задачи ant.

Что здесь происходит?

+0

«никогда не бывает» - без каких-либо сообщений? Может быть, запущенная директория - это не то же самое, что вы пытаетесь запустить ее вручную? – khachik 2010-12-08 18:07:08

ответ

43

У меня была такая же проблема один раз, и магия call сделала это.

В этом пакетном файле твоего попробовать:

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

не могу сказать вам, почему это работает, хотя. Угадайте, что это логика Microsoft.

+16

Это потому, что `ant` - командный файл. Если вы вызываете одну партию из другой, вам нужно использовать `call`. Но да, это иногда не очень понятно. – Joey 2010-12-12 09:40:05

8

При вызове одного пакетного файла из другого (что не всегда понятно) вы должны использовать CALL (или call), в противном случае он работает больше как goto и не возвращается обратно к абоненту. Is ant фактически пакетный файл ant.bat? Тогда это должно работать:

CALL ant -Dproject.version=1.1.2 release published 
Смежные вопросы