0

次のANTexecタグは、期待どおりに動作しません。

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

実行すると、1つの引数を指定してtext.cmdを呼び出すことが期待されます。ただし、argは3つの別々の引数に拡張されています。

マニュアルによると、値は内容を単一の引数として渡すことになっていますが、3つとして渡されます(コンマで区切られた文字列の各コンポーネントに1つ)。

コマンド「、」をセミコロン(;)に置き換えてみましたが、これも機能しません。argのvalue属性は、指定された文字列をパスであるかのように解析するように見えますが、そうではありません。

「A、B、C」を1つの引数として渡す方法を知っている人はいますか?

完全を期すために、私の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

antビルドの出力は次のとおりです。

 [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.cmda、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 に答える