我有一个Windows BAT文件,如下所示:
Z:
tool.exe c:\mypath\to\input c:\mypath\to\output \flag1 flag2
也就是说,tool.exe驻留在映射的网络驱动器上。该工具要求EXE从其自己的目录运行(在这种情况下为Z:)。
通过双击或在CMD窗口中运行时,BAT工作正常。
我想通过Ant自动化它。我的尝试在这里:
<target name="go">
<exec executable="cmd">
<arg value="/c"/>
<arg value="runtool.bat"/>
</exec>
</target>
它不起作用。从this link和其他研究,我了解以下内容:
我愿意编写自己的Ant任务,对目录进行进一步的网络配置等。(冒着使问题过于宽泛的风险,我们也在使用Jenkins并在那里开放思路。)
答案 0 :(得分:0)
您必须在dir
任务中指定exec
属性:
<exec executable="tool.exe" dir="z:">
<arg value="c:\mypath\to\input"/>
<arg value="c:\mypath\to\output"/>
<arg value="flag1"/>
<arg value="flag2"/>
</exec>
答案 1 :(得分:0)
这对我有用:
<target name="go">
<property name="batFileDir" location="${basedir}/resources" />
<exec executable="cmd" dir="." spawn="false">
<arg line="/C start ${batFileDir}/runTool.bat"/>
</exec>
</target>
其中runTool.bat如问题中所述,位于〜/ resources。