Как подсматривать окно PowerShell при использовании опции -File
-
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 из внешнего приложения?
Решение на основе предложения johannes Rössel
import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
Решение
Вы можете пройти соответствующие аргументы CreateProcess. или Процесс подавить консольное окно.
Тем не менее, PowerShell также имеет -WindowStyle
Параметр, который вы можете установить для скрытия.
Другие советы
Мне не повезло с -WindowStyle Hidden
, Поскольку окно консоли появилось каждый раз на некоторое время.
Вот почему я использую вспомогательный EXE, называемый PSRUN.exe, который делает именно это именно. Вы можете скачать файл источника и EXE Запускать запланированные задачи с Winform GUI в PowerShell. Отказ Я использую его для запланированных задач.
(Обратите внимание, что параметр -WindowStyle доступен только для V2.)
Использовать -WindowStyle Hidden
. Отказ Видеть здесь.