【问题标题】:Running ant from a batch file: Later commands don't run从批处理文件运行 ant:以后的命令不运行
【发布时间】:2011-05-22 09:39:01
【问题描述】:

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

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

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

这是怎么回事?

【问题讨论】:

  • “从未发生” - 没有任何消息?可能运行目录和你手动运行的不一样?

标签: ant copy batch-file


【解决方案1】:

我曾经遇到过同样的问题,神奇的call 做到了。

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

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

但不能告诉你为什么它会起作用。猜猜这是微软的逻辑。

【讨论】:

  • 这是因为ant 是一个批处理文件。如果您从另一批次调用一个批次,您需要使用call。但是,是的,这有时不是很清楚。
  • 只要您不将 ant 的输出定向到文件,它就可以工作:调用 ant target >> log.log。然后它就不会继续了。
【解决方案2】:

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

CALL ant -Dproject.version=1.1.2 release published

【讨论】:

    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多