it-swarm.asia

كيفية تشغيل برنامج PowerShell النصي

كيف يمكنني تشغيل برنامج PowerShell النصي؟

  • لدي برنامج نصي اسمه myscript.ps1
  • لدي كل الأطر اللازمة مثبتة
  • أنا وضعت سياسة التنفيذ الشيء
  • لقد اتبعت الإرشادات الموجودة على صفحة مساعدة MSDN هذه وأحاول تشغيلها كما يلي: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (مع أو بدون --noexit)

الذي لا يُرجع أي شيء بالضبط ، إلا أن اسم الملف هو الإخراج.

لا خطأ ، لا رسالة ، لا شيء. أوه ، عندما أقوم بإضافة -noexit ، يحدث نفس الشيء ، لكنني أظل داخل PowerShell وأضطر إلى الخروج يدويًا.

من المفترض أن يقوم ملف .ps1 بتشغيل برنامج وإرجاع مستوى الخطأ الذي يعتمد على إخراج هذا البرنامج. لكنني متأكد تمامًا من أنني لن أصل إلى هناك حتى الآن.

ما الخطأ الذي افعله؟

617
Pekka 웃
  1. قم بتشغيل Windows PowerShell ، وانتظر لحظة حتى يظهر الأمر PS Prompt
  2. انتقل إلى الدليل حيث يعيش البرنامج النصي

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. تنفيذ البرنامج النصي:

    PS> .\run_import_script.ps1 (enter)
    

ماذا ينقصني؟؟

أو: يمكنك تشغيل البرنامج النصي PowerShell من cmd.exe مثل هذا:

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

وفقا لهذا بلوق وظيفة هنا

أو يمكنك تشغيل البرنامج النصي Powershell من تطبيق C # الخاص بك :-)

تنفيذ البرامج النصية PowerShell بشكل غير متزامن من تطبيق C #

652
marc_s

إذا كنت تستخدم الإصدار 2.0 من PowerShell ، استخدم المعلمة -File من PowerShell.exe لاستدعاء برنامج نصي من بيئة أخرى مثل cmd.exe على سبيل المثال:

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

إذا كنت ترغب في تشغيل برنامج نصي دون تعديل سياسة تنفيذ البرنامج النصي الافتراضية ، يمكنك استخدام تجاوز التبديل عند بدء التشغيل Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>
162
Chingiz Musayev

نوع:

powershell -executionpolicy bypass -File .\Test.ps1

ملاحظة: هنا Test.ps1 هو البرنامج النصي PowerShell.

59
Sudheesh

لقد واجهت نفس المشكلة ، وحاولت وجربت ... وأخيراً اعتدت:

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

ووضع هذا الخط في ملف دفعي ، وهذا يعمل.

27
Dennis

إذا كان لديك فقط PowerShell 1.0 ، فيبدو أن هذا يؤدي الحيلة بشكل جيد بما فيه الكفاية:

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

يقوم بتمرير ملف البرنامج النصي إلى سطر أوامر PowerShell.

21
AndyM

سهل جدا. انقر بزر الماوس الأيمن فوق ملف .ps1 في Windows وفي قائمة Shell ، انقر فوق تشغيل باستخدام PowerShell .

11
electronictonic

طريقة سهلة هي استخدام PowerShell ISE ، فتح البرنامج النصي ، وتشغيل واستدعاء البرنامج النصي الخاص بك ، وظيفة ...

 Enter image description here

10
Jose Evaristo Cepeda Barrera

باستخدام ملف 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. ضمن قسم "مستوى الامتياز" ، تأكد من تحديد مربع الاختيار الموجود بجوار "تشغيل هذا البرنامج كمسؤول"
9
Kiquenet
  • أعط مسار البرنامج النصي ، أي إعداد المسار بواسطة cmd:

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

  • قم بتشغيل وظيفة نقطة الدخول في PowerShell:

    على سبيل المثال ، $> add or entry_func or main

7
pkm

إذا تم تسمية البرنامج النصي الخاص بك بالملحق .ps1 وكنت في نافذة PowerShell ، فأنت فقط تقوم بتشغيل ./myscript.ps1 (على افتراض أن الملف موجود في دليل العمل الخاص بك).

هذا صحيح بالنسبة لي على أي حال على نظام Windows 10 مع إصدار PowerShell 5.1 على أي حال ، ولا أعتقد أنني فعلت أي شيء لجعله ممكنًا.

6
rainabba

إذا كنت ترغب في تشغيل برنامج نصي PowerShell باستخدام برنامج جدولة مهام Windows ، يرجى اتباع الخطوات التالية:

  1. إنشاء مهمة

  2. اضبط Program/Script على Powershell.exe

  3. اضبط Arguments على -File "C:\xxx.ps1"

إنه من إجابة أخرى ،كيف يمكنني تنفيذ برنامج نصي PowerShell تلقائيًا باستخدام جدولة مهام Windows؟.

5
Gearon

استخدم المعلمة -File أمام اسم الملف. علامات الاقتباس تجعل PowerShell تعتقد أنها سلسلة من الأوامر.

1
Engineer