2013-04-08 8 views
5

मैं Windows Azure भूमिका पर स्टार्टअप कार्य cmd-script चलाने की कोशिश कर रहा हूं।Azure WorkerRole पर PowerShell कमांड चलाने में त्रुटि

powershell $command = "set-executionpolicy Unrestricted"  
powershell $command = ".\setupAgent.ps1" -NonInteractive >; out.txt 

अब समस्या है, मैं आदेश खोल से एक त्रुटि संदेश मिलता है, जो कहता है:

यह आदेश फ़ाइल स्क्रिप्ट की दो पंक्तियाँ हैं

D:\Users\UserAccount>powershell $command = "set-executionpolicy Unrestricted" 
'powershell' is not recognized as an internal or external command, 
operable program or batch file. 

ऐसा लग रहा है कुछ प्रकार के अलग-अलग कोडपेज या कुछ लिंक का उपयोग किया जाता है, क्योंकि ये विशेष वर्ण मेरी cmd फ़ाइल में नहीं हैं। Cmd-file को विंडोज 8 पर वीएस 2012 अल्टीमेट के माध्यम से बनाया गया था।

क्या आपके पास कोई विचार है, मैं कमांड की शुरुआत में विशेष वर्ण कैसे खारिज कर सकता हूं? अगर मैं cmd-file से कमांड को रिमोट डेस्कटॉप के माध्यम से कंसोल में कॉपी करता हूं तो यह ठीक काम करता है!

उत्तर

8

अपने वीएस 2012 अल्टीमेट के साथ अपनी whatever.cmd फ़ाइल खोलें। File पर क्लिक करें ->Save whatever.cmd as -> संवाद पर [save] बटन के बगल में थोड़ा तीर है।

Save With Encoding

यह चयन करें: यह एक मेनू विकल्प Save with Encoding होगा दिखाई देगा। अब उपलब्ध एन्कोडिंग की सूची से "यूएस-एएससीआईआई कोडपेज 20127" चुनें।

+0

धन्यवाद, यह समाधान था! – sebastian87

+0

+1। क्या आप विस्तार कर सकते हैं कि इस एन्कोडिंग की आवश्यकता क्यों है? –

+4

डिफ़ॉल्ट रूप से विजुअल स्टूडियो बीओएम के साथ यूटीएफ -8 में फ़ाइलों को सहेजता है (बाइट ऑर्डर मार्क - फ़ाइल के पहले बाइट्स)। विंडोज़ सहित ओएस, 'स्क्रिप्ट' फ़ाइलों को निष्पादित करते समय इसे पहचान नहीं पाते हैं। यह किसी भी स्क्रिप्ट फ़ाइल का कारण बनता है, जो बीओएम के साथ यूटीएफ -8 में सहेजा जाता है। अंगूठे का सामान्य नियम है, स्क्रिप्ट फाइलें (डॉस बैच फाइलें, पीएस फाइलें, बैश स्क्रिप्ट्स, पेरल, पीएचपी, इत्यादि) जिन्हें ओएस द्वारा निष्पादित किया जाना है, मूल एएससीआईआई एन्कोडिंग है। – astaykov

संबंधित मुद्दे