12

以下是我正在处理的 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 !正确 <= 在这里我不想在 ant 终止后这样做,而是我想从 build\Run 中出来,这就是我使用的原因cd../..

但问题是我无法执行 ant -q 之后的命令。这发生在程序控制从BATCH => ANT.

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

4

1 回答 1

21

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

你应该试试这个:

call ant -q

调用批处理文件(与链接相反)将正确返回到调用它的位置。

于 2013-05-30T08:25:10.453 回答