C# PowerShell控制台赢得';在执行脚本后不能关闭

C# PowerShell控制台赢得';在执行脚本后不能关闭,c#,powershell,C#,Powershell,我有一个PowerShell脚本,作为它的最后一条指令,它正在调用一个C#程序。此PowerShell脚本正在Windows服务器上的计划程序上运行。问题是脚本正在使用的PowerShell控制台窗口在脚本执行完毕后不会关闭或消失 我们需要关闭控制台窗口,否则计划程序将在任务管理器上有多个PowerShell.exe程序 我们已尝试添加exit和break,但窗口仍保持打开状态 PowerShell脚本中是否有任何方法可以在脚本执行完毕后强制控制台窗口关闭?在调用power时是否尝试过-非交互模

我有一个PowerShell脚本,作为它的最后一条指令,它正在调用一个C#程序。此PowerShell脚本正在Windows服务器上的计划程序上运行。问题是脚本正在使用的PowerShell控制台窗口在脚本执行完毕后不会关闭或消失

我们需要关闭控制台窗口,否则计划程序将在任务管理器上有多个PowerShell.exe程序

我们已尝试添加
exit
break
,但窗口仍保持打开状态


PowerShell脚本中是否有任何方法可以在脚本执行完毕后强制控制台窗口关闭?

在调用power时是否尝试过-非交互模式

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe-WindowStyle Hidden-非交互式C:\scripts\myscript.ps1

通过启动进程从powershell启动C#程序,您可以并行执行它,而无需powershell等待它完成。您可以使用-WindowStyle Hidden来确保C#程序启动时不会创建新窗口

Start-Process .\ProductiondataImportNew.exe -WindowStyle Hidden
将其放在.ps1文件的底部:

Stop-Process -processname powershell

发现这是由于StartInfo.RedirectStandardInput被设置为true,我猜如果它期望更多的输入,它将不会关闭。。。将其设置为false将在执行后正确关闭窗口。

您如何调用脚本?另外,您如何调用C#程序,它是否正在等待应用程序完成?@DanielMann我认为powershell.exe已被调用,调用脚本的行将在控制台中执行。不过这只是猜测而已。我们确实通过使用$PID编号并使用powershell关闭该编号来关闭窗口。@假定C#程序是这样传递的。\ProductiondataImportNew.exe我猜powershell正在等待应用程序完成,因为当我从计算机运行脚本时,在C#程序完成了。不,我还没有,但我会建议的。我的老板正在使用$PID获取powershell控制台的id,并从$PID关闭powershell应用程序。这是一种非常残忍的方式,但它确实有效。