如何在MSBuild中的Exec命令中转义引号

时间:2010-03-10 02:03:12

标签: msbuild

我正在尝试构建一个将网络驱动器映射到脚本中的驱动器号的MSBuild脚本,但不幸的是,目标文件夹的路径包含一个嵌入式空间。嵌入空间导致映射失败,我不知道是否可以转义路径周围的引号。我尝试过双引号,但是MSBuild不喜欢它(要么是Windows XP不喜欢它)。任何人都知道如何编码这个野兽,以便地图有效吗?

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

嵌入空间当然发生在“程序文件”中。

2 个答案:

答案 0 :(得分:179)

使用&quot;对您希望netCommand属性值中看到的双引号进行编码:

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

答案 1 :(得分:74)

您可以对命令使用单引号,例如

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

(来自MSBuild exec task without blocking