【问题标题】:Command are ignored after ant command in batch file命令在批处理文件中的 ant 命令后被忽略
【发布时间】:2015-05-27 18:14:00
【问题描述】:

以下是我正在处理的 bat 脚本代码块:

ECHO off 

IF NOT EXIST "%ANT_HOME%" (   

    SET ANT_HOME=%~dp0%build\apache-ant-1.8.2
    SET ANT_BIN=%~dp0%build\apache-ant-1.8.2\bin

    SET PATH | FIND "%ANT_HOME%;%ANT_BIN%"
)
cd "build\Run"
ant -q

cd ../..
echo "Program Terminated!"
exit

现在,我的 build.xml 文件位于此 build\Run 文件夹中,因此我首先导航到 build/Run,然后再运行 ant -q 命令(注意:我不想更改此导航方法)。

ant -q 命令执行的那一刻发生了以下事情:

  1. 设置环境变量为条件。
  2. 将目录更改为 build\Run。
  3. 由于我的 build.xml 位于 Run 目录中,因此 ant -q 命令可以正确运行。
  4. Ant 正确执行,并且没有 ant 脚本终止。
  5. 现在我的当前路径将是 build\Run !正确 cd../.. 的原因

但问题是我无法执行 ant -q 之后的命令。这是因为程序控制来自BATCH => ANT

有没有办法在 bat 脚本本身的 ant 命令之后执行我的命令?

【问题讨论】:

  • 请注意,SET PATH | FIND "!ANT_HOME!;!ANT_BIN!" 不会设置您的路径 - 它只会告诉您添加的内容是否存在...

标签: ant batch-file


【解决方案1】:

您可能会发现正在运行的ant 本身就是一个批处理文件,在这种情况下,它只是链接到它(不返回)。

你应该试试这个:

call ant -q

调用批处理文件(而不是链接)将正确返回到调用它的位置。

【讨论】:

  • 也解决了我的问题!谢谢!
  • 酱汁真棒!一直在努力弄清楚脚本出了什么问题。你是我的救星T^T
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 2021-11-14
  • 2019-11-15
  • 1970-01-01
  • 2011-05-22
  • 2010-12-23
  • 1970-01-01
相关资源
最近更新 更多