วิธีการหลีกเลี่ยงเครื่องหมายคำพูดใน Exec Command ใน MSBuild


131

ฉันกำลังพยายามสร้างสคริปต์ MSBuild ที่แมปไดรฟ์เครือข่ายกับอักษรชื่อไดรฟ์ในสคริปต์ แต่น่าเสียดายที่เส้นทางไปยังโฟลเดอร์เป้าหมายมีพื้นที่ฝังตัวอยู่ พื้นที่ฝังตัวเป็นสาเหตุให้การทำแผนที่ล้มเหลวและฉันไม่รู้ว่าเป็นไปได้ไหมที่จะหลีกเลี่ยงอัญประกาศรอบ ๆ พา ธ ฉันได้ลองใส่เครื่องหมายคำพูดคู่ แต่ MSBuild ไม่ชอบ (อย่างนั้นหรือ Windows XP ไม่ชอบ) ใครรู้วิธีเขียนรหัสสัตว์ร้ายนี้เพื่อให้แผนที่ใช้งานได้?

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

พื้นที่ฝังตัวของหลักสูตรเกิดขึ้นใน "ไฟล์โปรแกรม"

คำตอบ:


192

ใช้&quot;เพื่อเข้ารหัสเครื่องหมายคำพูดคู่ที่คุณต้องการnetดูภายในCommandค่าแอตทริบิวต์:

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

7
สิ่งนี้ไม่ได้ช่วยเมื่อคุณมีCommand="quot;$(PathWithTrailingBackslash)&quot;"เพราะมันแสดงผล"Path\With\Trailing\Backslash\"และ\"เป็นลำดับหนีบรรทัดคำสั่งสำหรับ"ดังนั้นข้อโต้แย้งต่อไปนี้ทั้งหมดได้รับสับสน
jnm2

@ jnm2 คุณไม่สามารถเพิ่มอีก&quot;หลังจากที่สองได้หรือไม่ Command="quot;$(PathWithTrailingBackslash)&quot;&quot;"
TetraDev

@ TetraDev จากนั้นแบ็กสแลชจะหายไปและคุณมีคำพูดที่ไม่เปิดเผยซึ่งผลที่ฉันไม่แน่ใจ
jnm2

84

คุณสามารถใช้อัญประกาศเดี่ยวสำหรับคำสั่งเช่น

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

(จากงานMSBuild exec โดยไม่ปิดกั้น )


สำหรับฉันแล้วใช้เครื่องหมายคำพูดเดี่ยวแทน & quot; มันเป็นทางออกที่ดีกว่า เพราะ & quot; ซึ่งอาจนำไปสู่ปัญหาเมื่อคุณพยายามทำ XmlPoke ซึ่งจะเป็นอักขระช่องว่างในวิธีที่ตลก: จาก & quot; ถึง & amp; quot;
JavierD
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.