Как подсматривать окно PowerShell при использовании опции -File

StackOverflow https://stackoverflow.com/questions/2396271

Вопрос

Я звоню 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. Отказ Видеть здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top