كيفية وضع نافذة PowerShell عند استخدام خيار الوفيل
-
25-09-2019 - |
سؤال
أنا أدعو PowerShell مثل ذلك:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -noninteractive -nologo -file "C:\Users\dummy\Documents\dev\powershell\samples\test.ps1"
أنا أسميها من نص Python ، ولكن يمكن ملاحظة نفس المشكلة إذا تم استدعاؤها عبر اختصار. اعتقدت -NonInteractive
سوف يتسبب العلم في تنفيذ Poweshell في نافذة خفية ، لكنه لا يفعل ذلك. هل هناك طريقة لقمع نافذة وحدة التحكم عند استدعاء PowerShell من تطبيق خارجي؟
حل يعتمد على اقتراح يوهانس روسيل
import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
المحلول
يمكنك تمرير الحجج المناسبة إلى عمليه الخلق أو العملية لقمع نافذة وحدة التحكم.
ومع ذلك ، لدى PowerShell أيضًا -WindowStyle
المعلمة التي يمكنك ضبطها على مخفي.
نصائح أخرى
لم يكن لدي حظ مع -WindowStyle Hidden
, ، لأن نافذة وحدة التحكم ظهرت في كل مرة لفترة من الوقت.
لهذا السبب أستخدم exe المساعد يسمى psrun.exe الذي يفعل ذلك بالضبط. يمكنك تنزيل ملف المصدر و exe تشغيل المهام المجدولة مع Winform GUI في PowerShell. أنا استخدمه للمهام المجدولة.
(لاحظ أن المعلمة -WindowStyle متوفرة فقط لـ V2.)
يستخدم -WindowStyle Hidden
. يرى هنا.