2010-12-08 137 views
24

我有一个运行蚂蚁,然后拷贝制作这些文件的一个批处理文件:蚂蚁:后来命令不运行

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

当我运行该批处理文件,蚂蚁运行成功,但复制语句永远不会发生,尽管如果我输入并且在ant任务完成后按Enter键,它就会正常工作。

这是怎么回事?

+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 

不能告诉你为什么它的工作,虽然。猜猜这是微软的逻辑。

+16

这是因为`ant`是一个批处理文件。如果你从另一个批次调用一个批次,你需要使用`call`。但是,是的,有时候不是很清楚。 – Joey 2010-12-12 09:40:05

8

当你从另一个调用一个批处理文件(这并不总是很清楚),你应该使用CALL(或call),否则它的工作原理更像goto并且不返回给调用者。 ant实际上是一个批处理文件ant.bat?这应该工作然后:

CALL ant -Dproject.version=1.1.2 release published