MSBuild में Exec कमांड में उद्धरण चिह्नों से कैसे बचें


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;दोहरे उद्धरण चिह्नों को एनकोड करने के लिए उपयोग करें :netCommand

<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 फिर बैकस्लैश अभी भी गायब है और आपके पास एक अयोग्य उद्धरण है, जिसका प्रभाव मुझे बिल्कुल यकीन नहीं है।
jnm2

84

आप कमांड के लिए सिंगल कोट्स का उपयोग कर सकते हैं, जैसे

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

( अवरुद्ध किए बिना MSBuild निष्पादन कार्य से )


मेरे लिए & quot; के बजाय एकल उद्धरण का उपयोग करें यह एक बेहतर उपाय है। क्योंकि & quot ;. जब आप एक XmlPoke करने की कोशिश करते हैं, तो यह समस्याओं को जन्म दे सकता है, जो एक अजीब तरीके से अंतरिक्ष पात्रों में जा रहा है: & quot; & amp; quot;
15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.