2010-12-01 9 views
1

を引数を渡すAntスクリプト私は、私は次のようにバッチスクリプトを呼び出す必要がAntスクリプトを持っています2番目の引数は 'revn = 120 SPECIAL_OBJS =' a b ''で、SPECIAL_OBJS = 'ab'の場合は 'ab'が引用符で囲まれている必要があります。しかし、Batスクリプトを呼び出すと、 'a b'の前後の引用符が破棄されるので、2番目の引数でrevn = 120 SPECIAL_OBJS = aと解釈されます。バッチファイルに

どうすればrevn = 120 SPECIAL_OBJS = "a b"のように読むことができますか?上記の私のために

<arg line=" ... &quot;revn=120 SPECIAL_OBJS='a b'&quot;" /> 

ant -verbose与える:ような何か -

+0

申し訳ありませんが、私はそれを働かせようとしているコードを持っています。あなたは私に教えてくれますかもっと多くの情報が必要ですか? – Sharma

答えて

1

単一引用符は、あなたがそれらをしたいか対合ませんが、いやしくもは&quot;エンティティを使用して、単一引用符を埋め込むことができるように以下:あなたのポストされたXMLで

[exec] Executing 'cmd.exe' with arguments: 
[exec] '/c' 
[exec] 'example.bat' 
[exec] 'C:\work_internal\${platform}' 
[exec] 'revn=120 SPECIAL_OBJS='a z'' 

引用ペア(vが - v)はここにある:

<arg line="/c example.bat 
    v----------------------------v v----------------------v vv 
    'C:\work_internal\${platform}' 'revn=120 SPECIAL_OBJS='a b''" /> 

あなたが意図した通りに見えず、行が正しく分割されていません。

<exec dir="." executable="cmd.exe"> 
    <arg value="/c" /> 
    <arg value="example.bat" /> 
    <arg value="C:\work_internal\${platform}" /> 
    <arg value="revn=120 SPECIAL_OBJS='a b'" /> 
</exec> 

なくシェルに単一線としてすべてを渡す:バッチスクリプトに引数を渡す

別の方法は、別個arg value=要素を使用しています。これは、(シェル)トークン化ロジックを回避します。

+0

"のようにすると、 "revn = 120 SPECIAL_OBJS =" aと表示され、batファイルで認識され、そこで停止します。bはピックアップしません。 – Sharma

+0

@Sharma - Windowsマシンでテストして改訂しましたそれに応じて。私は一重引用符と二重引用符を混乱させました。 –