Cómo escapar de las comillas en el comando Exec en MSBuild


131

Estoy tratando de crear un script MSBuild que asigne una unidad de red a una letra de unidad en el script, pero desafortunadamente la ruta a la carpeta de destino incluye un espacio incrustado. El espacio incrustado hace que falle la asignación, y no sé si es posible escapar de las comillas en el camino. He intentado las comillas dobles, pero a MSBuild no le gusta (eso o Windows XP no le gusta). ¿Alguien sabe cómo codificar esta bestia para que el mapa funcione?

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

El espacio incrustado, por supuesto, ocurre en "archivos de programa".

Respuestas:


192

Use &quot;para codificar las comillas dobles que desea netver dentro del Commandvalor del atributo:

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

77
Esto no ayuda cuando lo tiene Command="quot;$(PathWithTrailingBackslash)&quot;"porque representa como "Path\With\Trailing\Backslash\"y \"es la secuencia de escape de la línea de comandos para ", por lo que todos los siguientes argumentos se confunden.
jnm2

@ jnm2 ¿No podría agregar otro &quot;después del segundo? Command="quot;$(PathWithTrailingBackslash)&quot;&quot;"
TetraDev

@TetraDev Entonces aún falta la barra invertida y tienes una cita sin cerrar, cuyo efecto no estoy muy seguro.
jnm2

84

Puede usar comillas simples para el comando, p. Ej.

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

(Desde la tarea ejecutiva de MSBuild sin bloqueo )


Para mí, use comillas simples en lugar de & quot; Es una mejor solución. Porque el & quot ;. Eso podría generar problemas cuando intentas hacer un XmlPoke, va a espaciar los caracteres de una manera divertida: desde & quot; a & amp; quot;
JavierD
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.