2

我这样称呼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)
4

3 回答 3

2

您可以将适当的参数传递给CreateProcessProcess.Start以抑制控制台窗口。

但是,PowerShell 也有一个-WindowStyle可以设置为隐藏的参数。

于 2010-03-07T13:01:05.287 回答
1

我没有运气-WindowStyle Hidden,因为每隔一段时间都会出现一个控制台窗口。

这就是为什么我使用一个名为 PsRun.exe 的辅助 exe 来完成此任务。您可以下载源文件和 exe 文件在 PowerShell 中使用 WinForm GUI 运行计划任务。我将它用于计划任务。

(请注意,-windowstyle 参数仅适用于 V2。)

于 2010-03-07T16:48:20.447 回答
0

使用-WindowStyle Hidden. 见这里

于 2010-03-07T13:02:48.690 回答