Bagaimana cara menghindari tanda kutip di Exec Command di MSBuild


131

Saya mencoba untuk membangun skrip MSBuild yang memetakan drive jaringan ke huruf drive dalam skrip, tapi sayangnya path ke folder target menyertakan ruang tertanam. Ruang yang disematkan menyebabkan pemetaan gagal, dan saya tidak tahu apakah mungkin untuk keluar dari tanda kutip di jalur. Saya sudah mencoba tanda kutip ganda, tetapi MSBuild tidak menyukainya (entah itu atau Windows XP tidak menyukainya). Adakah yang tahu bagaimana cara membuat kode binatang ini sehingga petanya bekerja?

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

Ruang tertanam tentu saja terjadi di "file program".

Jawaban:


192

Gunakan &quot;untuk menyandikan tanda kutip ganda yang ingin Anda netlihat di dalam Commandnilai atribut:

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

7
Ini tidak membantu ketika Anda memilikinya Command="quot;$(PathWithTrailingBackslash)&quot;"karena dirender sebagai "Path\With\Trailing\Backslash\"dan \"adalah urutan pelarian baris perintah ", sehingga semua argumen berikut menjadi kacau.
jnm2

@ jnm2 Tidak bisakah Anda menambahkan yang lain &quot;setelah yang kedua? Command="quot;$(PathWithTrailingBackslash)&quot;&quot;"
TetraDev

@TetraDev Kemudian backslash masih hilang dan Anda memiliki kutipan tertutup, efeknya saya tidak yakin.
jnm2

84

Anda dapat menggunakan tanda kutip tunggal untuk perintah, misalnya

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

(Dari tugas MSBuild exec tanpa memblokir )


Bagi saya, gunakan kutipan tunggal alih-alih & quot; itu solusi yang lebih baik. Karena & quot ;. Itu dapat menyebabkan masalah ketika Anda mencoba melakukan XmlPoke, itu akan ke karakter ruang dengan cara yang lucu: dari & quot; ke & amp; quot;
JavierD
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.