2010-03-10 16 views
110

Sto provando a creare uno script MSBuild che associa un'unità di rete a una lettera di unità nello script, ma sfortunatamente il percorso della cartella di destinazione include uno spazio incorporato. Lo spazio incorporato causa il fallimento della mappatura e non so se sia possibile evitare le virgolette attorno al percorso. Ho provato le virgolette doppie, ma a MSBuild non piace (né a quello né a Windows XP non piace). Qualcuno sa come codificare questa bestia in modo che la mappa funzioni?Come sfuggire le virgolette nel comando Exec in MSBuild

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

Lo spazio incorporato si verifica in "file di programma".

risposta

166

Usa &quot; per codificare i doppi apici che si desidera net di vedere all'interno del valore dell'attributo Command:

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

questo non aiuta quando si ha 'Command = "quot; $ (PathWithTrailingBackslash) " "' perché rende come '" Percorso \ Con \ Trailing \ Barra rovesciata \"' e '\" 'è il Comando sequenza di escape di riga per '" ', quindi tutti i seguenti argomenti vengono incasinati. – jnm2

64

È possibile utilizzare le virgolette singole per il comando, per es.

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

(da MSBuild exec task without blocking)

+1

Funziona a meraviglia, grazie – SteveC

0

Per me le virgolette singole usare al posto di " Si tratta di una soluzione migliore. Perché il ". Ciò potrebbe causare problemi quando si tenta di eseguire un XmlPoke, il suo passaggio ai caratteri spaziali in modo divertente: da " a & quot;

Problemi correlati