0

以下 ANT exec 标记未按预期运行。

<exec executable="c:\scratch\test.cmd">
    <arg value="A,B,C"/>
</exec>

执行时,我希望它使用 1 个参数调用 text.cmd。但是,arg 正在扩展为三个单独的参数。

根据手册, value 应该将内容作为单个参数传递,但是,它作为三个传递(一个用于字符串的每个组件,用逗号分隔)。

我尝试用分号 (;) 替换命令“,”,但这也不起作用。似乎 arg 的 value 属性将提供的字符串解析为好像它是一个路径,但事实并非如此。

任何人都知道如何将“A,B,C”作为一个参数传递?

为了完整起见,我的 test.cmd 文件是这样的:

@echo off
echo Arg1: %1
echo Arg2: %2
echo Arg3: %3
echo Arg4: %4
echo Arg5: %5
echo Arg6: %6
echo Arg7: %7
echo Arg8: %8
echo Arg9: %9

蚂蚁构建的输出是:

 [exec] Arg1: A
 [exec] Arg2: B
 [exec] Arg3: C
 [exec] Arg4:
 [exec] Arg5:
 [exec] Arg6:
 [exec] Arg7:
 [exec] Arg8:
 [exec] Arg9:
4

2 回答 2

2

问题已解决。我非常专注于 ant 中的问题,以至于我没有花时间测试 DOS 之类的命令行如何解释命令行参数。

从 Window 命令行,我运行 test.cmd a,c,b 并看到命令参数被拆分,因此,问题与 ant 无关。所以现在我只需要弄清楚如何强制 ANT 引用参数。

于 2012-12-01T01:59:09.153 回答
1

尝试:

<exec executable="c:\scratch\test.cmd">
    <arg line="A,B,C"/>
</exec>

有关参数如何工作的说明,请参见 ant 手册。

于 2012-11-30T21:43:00.050 回答