从批处理文件运行ant:以后的命令不运行

Pau*_*ers 27 ant copy batch-file

我有一个运行ant的批处理文件,然后复制其中一个生成的文件:

ant -Dproject.version=1.1.2 release published
copy /Y D:\dir1\MyJar.jar   D:\dir2\MyJar.jar
Run Code Online (Sandbox Code Playgroud)

当我运行批处理文件时,ant运行成功,但是复制语句永远不会发生,虽然如果我输入它并且在ant任务完成后按Enter键它会正常工作.

这里发生了什么?

Lin*_*een 46

我曾经遇到过同样的问题并且魔术call做到了.

在您的批处理文件中尝试:

call ant -Dproject.version=1.1.2 release published
copy /Y D:\dir1\MyJar.jar   D:\dir2\MyJar.jar
Run Code Online (Sandbox Code Playgroud)

但不能告诉你为什么它有效.猜猜这是微软的逻辑.

  • 这是因为`ant`是一个批处理文件.如果从另一个批处理一个批处理,则需要使用`call`.但是,有时候不太清楚. (16认同)

det*_*zed 10

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

CALL ant -Dproject.version=1.1.2 release published
Run Code Online (Sandbox Code Playgroud)