PowerShell स्क्रिप्ट कैसे चलाएं


710

मैं एक PowerShell स्क्रिप्ट कैसे चलाऊँ?

  • मेरे पास myscript.ps1 नाम की एक स्क्रिप्ट है
  • मेरे पास सभी आवश्यक ढांचे स्थापित हैं
  • मुझे लगता है कि सेट निष्पादन नीति बात
  • मैंने इस MSDN सहायता पृष्ठ पर निर्देशों का पालन किया है और इसे इस तरह चलाने की कोशिश कर रहा हूं: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'(साथ या बिना --noexit)

जो बिल्कुल कुछ भी नहीं देता है, सिवाय इसके कि फ़ाइल नाम आउटपुट है।

कोई त्रुटि नहीं, कोई संदेश नहीं, कुछ भी नहीं। ओह, जब मैं जोड़ता हूं -noexit, तो वही होता है, लेकिन मैं पॉवरशेल के भीतर रहता हूं और मैन्युअल रूप से बाहर निकलना पड़ता है।

.Ps1 फ़ाइल को प्रोग्राम चलाने और उस प्रोग्राम के आउटपुट पर निर्भर त्रुटि स्तर को वापस करने के लिए माना जाता है। लेकिन मुझे पूरा यकीन है कि मैं अभी तक वहां नहीं पहुंच रहा हूं।

मैं क्या गलत कर रहा हूं?


2
powershellजैसा आपने शुरू किया होगा , वैसा ही शुरू करें cmd। अब आप myscript.ps1स्क्रिप्ट को किसी भी निष्पादन योग्य के रूप में ( .\myscript.ps1
पावर

जवाबों:


731
  1. Windows PowerShell लॉन्च करें, और PSकमांड प्रॉम्प्ट दिखाई देने के लिए कुछ पल प्रतीक्षा करें
  2. उस निर्देशिका पर नेविगेट करें जहां स्क्रिप्ट रहती है

    PS> cd C:\my_path\yada_yada\ (enter)
  3. स्क्रिप्ट निष्पादित करें:

    PS> .\run_import_script.ps1 (enter)

मैं क्या खो रहा हूँ??

या: आप cmd.exeइस तरह से PowerShell स्क्रिप्ट चला सकते हैं :

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

इस ब्लॉग पोस्ट के अनुसार यहाँ

या आप अपने C # अनुप्रयोग से अपनी PowerShell स्क्रिप्ट भी चला सकते हैं :-)

एसिंक्रोनस रूप से अपने C # एप्लिकेशन से PowerShell स्क्रिप्ट निष्पादित करें


19
आपके ब्लॉग पोस्ट लिंक ने किया। मुझे उपयोग करना होगा powershell -noexit "& "C:\yada_yada\run_import_script.ps1"( तीन दोहरे उद्धरणों पर ध्यान दें ) मुझे वास्तव में समझ में नहीं आता है, लेकिन इस बिंदु पर, मुझे वास्तव में परवाह नहीं है :) बहुत बहुत धन्यवाद!
पेका

16
वास्तव में क्या करता "&है?
ब्लूराजा - डैनी पफ्लुगुएफ्ट

16
Technet.microsoft.com/en-us/library/ee176949.aspx के अनुसार , 'और' इसके लिए है "यदि आप वास्तव में उस स्ट्रिंग मान को निष्पादित करना चाहते हैं (अर्थात, यदि आप उस स्क्रिप्ट को चलाना चाहते हैं जिसका पथ संलग्न है दोहरे उद्धरण) आपको कॉल ऑपरेटर (एम्परसेंड) के साथ पथ को प्रस्तुत करने की आवश्यकता है। "
डग डावसन

29
इनमें से किसी ने भी मेरे लिए तब तक काम नहीं किया जब तक कि मैंने अपनी ताज़ा-बनाई अहस्ताक्षरित स्क्रिप्ट के लिए पॉवरशेल के डिफ़ॉल्ट निष्पादन योग्य को बायपास नहीं किया। अन्य बातों के अलावा, प्रशासक के रूप में इसे फिर से शुरू करने की आवश्यकता है। @LukePuplett के साथ पूरी तरह से सहमत हैं - सबसे सरल उपयोग-मामला बनाने के लिए शानदार है 20 मिनट गुगली और आसपास चक्कर लगाना। और त्रुटि संदेश! जाहिर तौर पर इन लोगों ने 70 के दशक में आईबीएम में काम किया था।
स्पाइक 0xff

14
जैसा कि नीचे एक टिप्पणी में कहा गया है, निष्पादन नीति को दरकिनार करना होगा। जिन वस्तुओं पर यहां चर्चा नहीं की गई है, उनमें से एक पैरामीटर में एक कमांड लाइन से एक पॉवरशेल स्क्रिप्ट को चलाने का तरीका है। प्रकार: ऐसा करने के लिएpowershell -executionpolicy bypass ".\myscript.ps1 yadayadayada"
जिम Lahman

229

यदि आप PowerShell 2.0 पर हैं, तो -Fileकिसी अन्य परिवेश से, जैसे कि cmd.exe, स्क्रिप्ट को इनवॉइस करने के लिए PowerShell.exe के पैरामीटर का उपयोग करें। उदाहरण के लिए:

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1

5
क्या इस तरह के आह्वान के लिए मापदंडों को जोड़ने का एक तरीका है?
अलेक्जेंडर ग्रो

11
आपको स्क्रिप्ट फ़ाइल पथ के बाद आर्गल्स को निशान करने में सक्षम होना चाहिए। PowerShell.exe उपयोग से - [-File <filePath> <args>]
कीथ हिल

"स्क्रिप्ट लोड नहीं की जा सकती क्योंकि इस सिस्टम पर स्क्रिप्ट्स का निष्पादन अक्षम है। कृपया" r- अधिक विवरणों के लिए_साइनिंग के बारे में "सहायता प्राप्त करें" देखें।
पावेल व्लासोव

7
यदि आपने अपने सिस्टम पर PowerShell स्क्रिप्ट निष्पादन सक्षम नहीं किया है, तो पैरामीटर जोड़ें-ExecutionPolicy Bypass
कीथ हिल

4
FYI करें यह मेरे अनुभव में PowerShell 1.0 के लिए भी काम करता है (Windows 2012 सर्वर)
knocte

189

यदि आप डिफ़ॉल्ट स्क्रिप्ट निष्पादन नीति को संशोधित किए बिना स्क्रिप्ट चलाना चाहते हैं, तो आप Windows PowerShell को लॉन्च करते समय बाईपास स्विच का उपयोग कर सकते हैं ।

powershell [-noexit] -executionpolicy bypass -File <Filename>

11
इसके अलावा, -nologoस्टार्टअप बैनर से छुटकारा पाने का विकल्प भी शामिल करें
swdev

73

प्रकार:

powershell -executionpolicy bypass -File .\Test.ps1

नोट: यहाँ Test.ps1PowerShell स्क्रिप्ट है।


इसे एक powershell -executionpolicy bypass -File .\Test.ps1कार्यशील तरीके से निष्पादित किया जाना चाहिए क्योंकि आप यह मानते हैं कि वर्तमान कार्य निर्देशिका में Test.ps1 है
Yeow_Meng

29

मुझे एक ही समस्या है, और मैंने कोशिश की और कोशिश की ... अंत में मैंने उपयोग किया:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

और इस लाइन को एक बैच-फाइल में डालें, और यह काम करता है।


22

यदि आपके पास केवल PowerShell 1.0 है , तो लगता है कि यह चाल काफी अच्छी है:

powershell -command - < c:\mypath\myscript.ps1

यह स्क्रिप्ट फ़ाइल को PowerShell कमांड लाइन पर पाइप करता है।


3
जब सुरक्षा नीतियां स्क्रिप्ट निष्पादन की अनुमति नहीं देती हैं तो उपयोगी ट्रिक।
एरॉन लोरिंज़

17

बहुत आसान। विंडोज में .ps1 फाइल पर राइट क्लिक करें और शेल मेन्यू में Run with PowerShell पर क्लिक करें ।


यह निष्पादन नीति के साथ स्क्रिप्ट के निष्पादन को सक्षम किए बिना स्क्रिप्ट को जल्दी से चलाने का काम करता है। धन्यवाद!
b01

यह वही है जो मैं देख रहा था, धन्यवाद!
अनामोल

11

Cmd (BAT) फ़ाइल का उपयोग करना:

@echo off
color 1F
echo.

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"

:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL

यदि आपको व्यवस्थापक के रूप में चलाने की आवश्यकता है :

  1. शॉर्टकट को कमांड प्रॉम्प्ट पर इंगित करें (मैंने इसे प्रशासनिक कमांड प्रॉम्प्ट नाम दिया है)
  2. शॉर्टकट के गुणों को खोलें और संगतता टैब पर जाएं
  3. विशेषाधिकार स्तर अनुभाग के तहत, "इस प्रोग्राम को व्यवस्थापक के रूप में चलाएं" चेक के आगे चेकबॉक्स सुनिश्चित करें


10

यदि आपकी स्क्रिप्ट को .ps1एक्सटेंशन के साथ नाम दिया गया है और आप पॉवरशेल विंडो में हैं, तो आप बस चलाते हैं ./myscript.ps1(यह मानते हुए कि फ़ाइल आपके वर्किंग डायरेक्टरी में है)।

यह मेरे लिए वैसे भी विंडोज 10 पर PowerShell संस्करण 5.1 के साथ वैसे भी सच है, और मुझे नहीं लगता कि मैंने इसे संभव बनाने के लिए कुछ भी किया है।


2
यह प्रश्न का उत्तर कैसे देता है?
पीटर मोर्टेंसन

4
यह पूरी तरह से सवाल का जवाब देता है: मैं एक पॉवरशेल स्क्रिप्ट कैसे चलाऊं? उत्तर: स्टार्टअप पॉवरशेल कंसोल, फिर स्क्रिप्ट निष्पादित करें। आसान। सरल। लिनक्स पर भी काम करता है।
थूफ़ीर

4
यह बिल्कुल सवाल का जवाब देता है, और वास्तव में वही था जिसकी मुझे तलाश थी। के रूप में myscript.ps1काम नहीं किया, एक त्रुटि फेंक दिया, लेकिन इसके साथ ./क्रियान्वित कर रहा है।
जेफ

7
  • स्क्रिप्ट का पथ, अर्थात्, cmd द्वारा पथ सेटिंग दें:

    $> . c:\program file\prog.ps1

  • PowerShell का प्रविष्टि बिंदु फ़ंक्शन चलाएँ:

    उदाहरण के लिए, $> add or entry_func or main


एक cmd प्रॉम्प्ट से अपनी कमांड्स चलाना: >$ . c:\program file\prog.ps1 '.' is not recognized as an internal or external command, operable program or batch file.और>$ add or entry_func or main 'add' is not recognized as an internal or external command, operable program or batch file.
Suncat2000

7

यदि आप Windows टास्क शेड्यूलर के साथ पॉवरशेल स्क्रिप्ट चलाना चाहते हैं, तो कृपया नीचे दिए गए चरणों का पालन करें:

  1. एक कार्य बनाएँ

  2. को सेट Program/ScriptकरेंPowershell.exe

  3. को सेट Argumentsकरें-File "C:\xxx.ps1"

यह एक अन्य उत्तर से है, मैं Windows कार्य शेड्यूलर का उपयोग करके स्वचालित रूप से PowerShell स्क्रिप्ट कैसे निष्पादित करूं?


1

-Fileफ़ाइल नाम के सामने पैरामीटर का उपयोग करें । उद्धरण PowerShell को लगता है कि यह आदेशों की एक स्ट्रिंग है।


1

मेरे पास एक बहुत ही सरल उत्तर है जो काम करता है:

  1. PowerShell को व्यवस्थापक मोड में खोलें
  2. Daud: set-executionpolicy unrestricted
  3. एक नियमित PowerShell विंडो खोलें और अपनी स्क्रिप्ट चलाएँ।

मुझे यह समाधान उस लिंक के बाद मिला जो त्रुटि संदेश के भाग के रूप में दिया गया था: निष्पादन नीतियों के बारे में

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.