2013-05-30 147 views
8

以下是蝙蝠脚本代码块上我的工作:命令在批处理文件蚂蚁命令后忽略

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文件是此版本\ Run文件夹内,这样我我第一次导航到生成/运行之前运行ant -q命令(注意:我不想改变这种导航方法)。

的时刻蚂蚁-q命令执行以下的事情发生:

  1. 设置环境变量为条件。
  2. 更改目录以建立\ Run。
  3. 由于我的build.xml位于Run目录中,所以ant -q命令可以正常运行。
  4. Ant正确执行,而不是ant脚本终止。
  5. 现在我的当前路径将被建立\运行!正确< =在这里,我不希望这种蚂蚁被终止后,相反,我想从这就是为什么我使用cd../..

但问题是我不能够蚁后执行的命令编译\ Run中走出来-q。这发生在程序控制从BATCH => ANT

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

+1

注意,那'SET PATH |找到“!ANT_HOME!;!ANT_BIN!”'不会设置你的路径 - 它只会告诉你,如果你的增加在那里... – Stephan

回答

17

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

而应该试试这个:

call ant -q 

调用批处理文件(而不是链接)将正确返回后,你把它叫做点。

+0

更正了我的问题!谢谢! –

+0

棒极了!一直在努力想通过脚本找出问题所在。你是我的救世主T^T –

+0

完美的解决方案!为我工作!万分感谢! –