2009-05-21 10 views
1

私はANTスクリプト内でincredibuildを使用してVSビルドを実行しようとしていますが、何らかの理由でexecタスクが次のエラーで失敗します。'|'を含むEXECタスク

'Win32'は内部または外部コマンドとして認識されません私は次のコードを使用するときに

は:「|」

<arg line='buildconsole solution.sln /rebuild /cfg="Release|Win32"' /> 

を私はAntスクリプトを治療することができると思います区切り文字または何かとして...

どのように私はこれを動作させることができる任意のアイデア?

私も次のことを試してみたが、何も近い私を得ない:

<arg line='buildconsole solution.sln /rebuild /cfg="Release&#124;Win32"' /> 

<arg value="buildconsole solution.sln /rebuild /cfg=&quot;Release|Win32&quot;" /> 

<arg value="buildconsole solution.sln /rebuild /cfg=&quot;Release&#124;Win32&quot;" /> 

答えて

1

うーん...私は再びそれを試してみました、それが働いたが、私は^私はリリースの前後に引用符を推測

<arg value="buildconsole solution.sln /rebuild /cfg=Release^|Win32" /> 

に変更した後にのみ|私が価値を使用する場合、Win32は必要ありませんでした。

ありがとうございました!

0

私はこの問題は、Windowsのコマンドプロンプトが見ることだと思います|それを「パイプ」演算子として扱います。 ^/>

3

あなたがして、それを先行することによって、パイプ記号をエスケープする必要があります| 'solution.sln /再構築/ CFG = "Win32のリリース\" buildconsole' =

< argのラインを:おそらく使用してパイプを逃れます。だから、:

<arg line='buildconsole solution.sln /rebuild /cfg="Release^|Win32"' /> 

EDIT:

は、キャレットが動作しませんが、よろしいですか?これは、このサンプルのantファイル中には思える:

<?xml version="1.0" encoding="UTF-8"?> 

<project name="Test" default="build" basedir="."> 

    <target name="build"> 
     <exec executable="cmd"> 
      <arg line="/k echo cfg=&quot;Release^|Win32&quot;"/> 
     </exec> 
    </target> 

</project>