我有一个 PowerShell 脚本,它的最后一条指令是调用 C# 程序。此 PowerShell 脚本正在调度程序上的 Windows 服务器上运行。问题是脚本正在使用的 PowerShell 控制台窗口在脚本执行完成后不会关闭或消失。
我们需要关闭控制台窗口,否则调度程序将在任务管理器上有多个 PowerShell.exe 程序。
我们已经尝试添加exit
,break
但窗口仍然保持打开状态。
PowerShell脚本中是否有任何方法可以在脚本执行完成后强制关闭控制台窗口?
我有一个 PowerShell 脚本,它的最后一条指令是调用 C# 程序。此 PowerShell 脚本正在调度程序上的 Windows 服务器上运行。问题是脚本正在使用的 PowerShell 控制台窗口在脚本执行完成后不会关闭或消失。
我们需要关闭控制台窗口,否则调度程序将在任务管理器上有多个 PowerShell.exe 程序。
我们已经尝试添加exit
,break
但窗口仍然保持打开状态。
PowerShell脚本中是否有任何方法可以在脚本执行完成后强制关闭控制台窗口?
您是否在调用电源时尝试过 -NonInteractive 模式
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden -NonInteractive C:\scripts\myscript.ps1
通过使用 Start-Process 从 PowerShell 启动 C# 程序,您可以并行执行它,而无需让 PowerShell 等待它完成。您可以使用 -WindowStyle Hidden 来确保 C# 程序在启动时不会创建新窗口。
Start-Process .\ProductiondataImportNew.exe -WindowStyle Hidden
把它放在 .ps1 文件的底部:
Stop-Process -processname powershell
发现这是由于 StartInfo.RedirectStandardInput 设置为 true,我猜如果它期望更多输入它不会关闭...将其设置为 false 会在执行后正确关闭窗口。