2017-03-08 7 views
5

में मैं एक खिड़कियों powershell स्क्रिप्ट है कि मेरे उपयोगकर्ताओं के लिए एक सर्वर पर उपलब्ध हो जाएगा है "के साथ खुला" करने के लिए। मैं नहीं चाहता हूं कि उन्हें बाहर जाना पड़े और पीएस स्क्रिप्ट ढूंढें, राइट क्लिक करें और "पावरहेल के साथ चलाएं" पर क्लिक करें या "इसके साथ खोलें" पर क्लिक करें। विंडोज़ (कम से कम 7 विन) डिफ़ॉल्ट प्रोग्राम नोटपैड है।कैसे एक बैच फ़ाइल

मैं यह करने के लिए एक बैच फ़ाइल बनाना चाहते हैं। मैं कोशिश की है:

start "c:\myfile.ps1" powershell.exe 

और कुछ अन्य रूपों, लेकिन सभी मैं ऐसा करने में सक्षम किया गया है या तो powershell प्रारंभ करें, या नोटपैड उसके डिफ़ॉल्ट कार्यक्रम में मेरी फ़ाइल खोलते हैं, है।

किसी भी सलाह की सराहना की है! धन्यवाद!

बोनस प्रश्न: यदि मैं व्यवस्थापक यह भी व्यवस्थापक के रूप में मेरी पी एस स्क्रिप्ट चलाने के रूप में मेरी बैच फ़ाइल को चलाने के? ,

PowerShell.exe -file c:\MyFile.ps1 

साथ ही, कुछ उपयोगकर्ताओं को अपने निष्पादन नीति कुछ है कि निष्पादित किया जा रहा से स्क्रिप्ट को प्रतिबंधित होगा करने के लिए सेट हो सकता है तो आप कर सकते हैं:

+1

'start" c: \ myfile.ps1 "powerhell.exe' -> 'start" "powerhell.exe" c: \ myfile.ps1 "' –

+0

क्या आप कोशिश कर रहे हैं: powerhell.exe "c : \ myfile.ps1 "? क्योंकि मैंने कोशिश की है (और फिर कोशिश की है) कि, और यह मेरी ps1 फ़ाइल नोटपैड में खुलती है। – coinbird

+1

हाँ, वह है। अभी आप फ़ाइल पथ का उपयोग कर रहे हैं जो आप शुरू कर रहे हैं के शीर्षक के रूप में कर रहे हैं। वाक्यविन्यास [यहां] (https://ss64.com/nt/start.html) देखें। – TheMadTechnician

उत्तर

6

बस अपने बैच फ़ाइल में PowerShell.exe के लिए -file तर्क का उपयोग आप चलाकर रूप Ansgar Wiechers विख्यात ऐसा कर सकते हैं

PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1 

आप इसे शुरू करने के लिए start उपयोग करने के लिए करना चाहते हैं:: की तरह कुछ है

+०१२३५१६४१०६१
start "" PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1 

start का उपयोग करने के संबंध में कुछ नोट्स: डिफ़ॉल्ट रूप से यह PowerShell को एक अलग विंडो में लॉन्च करेगा, और पावरशेल विंडो को बंद करने के इंतजार किए बिना शेष बैच फ़ाइल निष्पादित करना जारी रखेगा। यदि यह अवांछनीय है तो आपके पास दो विकल्प हैं। आप /wait जो PowerShell खिड़की बैच फ़ाइल जारी रखने से पहले बंद के लिए करने के लिए, या आप/बी विकल्प का उपयोग कर सकते हैं एक नई विंडो खोलने नहीं होगा होगा, और वर्तमान कंसोल विंडो में PowerShell निष्पादित करेंगे इंतजार करेंगे निर्दिष्ट कर सकते हैं।

और अंत में, हाँ अगर आपके बैच फ़ाइल प्रशासक संदर्भ के तहत चलाया जाता है, PowerShell के साथ-साथ हो जाएगा।

+2

यह ध्यान देने योग्य हो सकता है कि 'स्टार्ट' ने एक नई विंडो में प्रोग्राम लॉन्च किया है, जबकि 'powerhell.exe' का आह्वान करते समय सीधे (कंसोल) विंडो में दुभाषिया चलाएगा। –

+0

बिल्कुल सही। और मैं केवल शुरुआत का उपयोग कर रहा था क्योंकि मैंने सोचा था कि यह एक प्रोग्राम लॉन्च करने के वाक्यविन्यास का हिस्सा था (जैसे शक्तिशक्ति)। आपकी मदद के लिए बहुत धन्यवाद! – coinbird