批处理文件中的ant命令后,命令被忽略

时间:2013-05-30 08:22:57

标签: ant batch-file

以下是我正在处理的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文件夹中,因此我在运行ant -q命令之前首先导航到构建/运行(注意:我不想更改此导航方法)。

在发生事情后执行ant -q命令:

  1. 将环境变量设置为条件。
  2. 将目录更改为build \ Run。
  3. 由于我的build.xml位于Run目录中,因此ant -q命令正确运行。
  4. Ant正确执行,而不是ant脚本终止。
  5. 现在我的当前路径将是build \ Run!正确< =这里我不希望这个在ant终止后,而是我想从build \ Run出来这就是为什么我用cd../..
  6. 但问题是我无法在ant -q之后执行命令。这是因为程序控制来自BATCH => ANT

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

1 个答案:

答案 0 :(得分:19)

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

你应该试试这个:

call ant -q

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