我打电话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的supressing控制台窗口的方法吗?

基于约翰内斯罗塞尔建议

import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
有帮助吗?

解决方案

可以通过适当的参数 CreateProcess的的Process.Start 以抑制控制台窗口。

然而,PowerShell还具有可以设置为隐藏一个-WindowStyle参数。

其他提示

我曾与-WindowStyle Hidden没有运气,因为一个控制台窗口出现每一次一会儿。

这就是为什么我使用一个辅助的exe称为PsRun.exe这正是这么做的。你可以下载源和EXE文件的在PowerShell中运行与WinForm的GUI计划任务。我用它来计划任务。

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

使用-WindowStyle Hidden。请参阅这里。

scroll top