MSBuild'de Exec Komutunda tırnak işaretlerinden nasıl kaçış yapılır


131

Bir ağ sürücüsünü komut dosyasındaki bir sürücü harfine eşleyen bir MSBuild komut dosyası oluşturmaya çalışıyorum, ancak ne yazık ki hedef klasörün yolu katıştırılmış bir alan içeriyor. Gömülü boşluk, eşlemenin başarısız olmasına neden oluyor ve yolun etrafındaki tırnak işaretlerinden kaçmanın mümkün olup olmadığını bilmiyorum. Çift tırnak işaretlerini denedim, ancak MSBuild bundan hoşlanmıyor (ya bu ya da Windows XP bundan hoşlanmıyor). Haritanın çalışması için bu canavarı nasıl kodlayacağını bilen var mı?

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

Gömülü alan elbette "program dosyalarında" bulunur.

Yanıtlar:


192

Öznitelik değerinin içinde görmek &quot;istediğiniz çift tırnak işaretlerini kodlamak için kullanın :netCommand

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

7
Bu, sahip olduğunuzda yardımcı olmaz, Command="quot;$(PathWithTrailingBackslash)&quot;"çünkü o , komut satırı kaçış dizisi olarak işlenir "Path\With\Trailing\Backslash\"ve bu nedenle, takip eden tüm argümanlar karışır. \""
jnm2

@ jnm2 İkinciden &quot;sonra bir tane daha ekleyemez misiniz ? Command="quot;$(PathWithTrailingBackslash)&quot;&quot;"
TetraDev

@TetraDev O halde ters eğik çizgi hala eksik ve kapatılmamış bir alıntı var, bunun etkisinden tam olarak emin değilim.
jnm2

84

Komut için tek tırnak kullanabilirsiniz, örneğin

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

( Engellemeden MSBuild exec görevinden )


Benim için & quot; daha iyi bir çözüm. Çünkü & quot; Bu, bir XmlPoke yapmaya çalıştığınızda sorunlara yol açabilir, karakter boşluk karakterlerine komik bir şekilde gider: & quot; & amp; quot;
JavierD
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.