web-dev-qa-db-ja.com

MSBuildのExecコマンドで引用符をエスケープする方法

ネットワークドライブをスクリプト内のドライブ文字にマップするMSBuildスクリプトを作成しようとしていますが、残念ながらターゲットフォルダーへのパスには埋め込みスペースが含まれています。埋め込まれたスペースが原因でマッピングが失敗し、パスを囲む引用符をエスケープできるかどうかわかりません。二重引用符を試してみましたが、MSBuildはそれを気に入らない(それもWindowsもXPは気に入らない)。

<Exec Command="Net Use x: \\ofmapoly703\c$\program files\ar\iap /user:$(UserID) $(Password)"
WorkingDirectory="c:\"
ContinueOnError="false"
/>

もちろん、埋め込みスペースは「プログラムファイル」にあります。

122
Cyberherbalist

つかいます - &quot;net属性値内でCommandに表示させる二重引用符をエンコードします。

<Exec Command="Net Use x: &quot;\\ofmapoly703\c$\program files\ar\iap&quot; /user:$(UserID) $(Password)" 
WorkingDirectory="c:\" 
ContinueOnError="false" 
/> 
180
vladr

コマンドには単一引用符を使用できます。

  <Exec Command='Explorer.exe "$(DestinationDir)"' IgnoreExitCode="true" />

ブロックなしのMSBuild execタスク )から

75