2010-03-10 15 views
110

Próbuję zbudować skrypt MSBuild, który mapuje dysk sieciowy na literę dysku w skrypcie, ale niestety ścieżka do folderu docelowego zawiera osadzoną przestrzeń. Wbudowane miejsce powoduje niepowodzenie mapowania i nie wiem, czy można uciec z cytatów na ścieżce. Próbowałem już podwójnych cudzysłowów, ale MSBuild tego nie lubi (albo Windows XP tego nie lubi). Czy ktoś wie, jak zakodować tę bestię, aby mapa działała?Jak uniknąć wycinków w poleceniu Exec w MSBuild

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

Przestrzeń zagnieżdżona oczywiście występuje w "plikach programu".

Odpowiedz

166

Zastosowanie &quot; do kodowania cudzysłowów, które chcesz net zobaczyć wewnątrz wartości atrybutu Command:

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

To nie pomaga, gdy masz 'command = "quot; $ (PathWithTrailingBackslash) " "' ponieważ renderuje jako '" Ścieżka \ Z \ Trailing \ backslash \"' i '\" 'jest Command sekwencja ucieczki dla '' ', więc wszystkie poniższe argumenty są pomieszane. – jnm2

0

Dla mnie apostrofów zamiast " jest to lepsze rozwiązanie. Ponieważ ". To może prowadzić do problemów, gdy próbujesz zrobić XmlPoke, w zabawny sposób przechodząc do postaci spacji: od " do & quot;