2009-12-02 77 views
0

我从C#调用执行PowerShell脚本(如..的Process.Start(powershell.exe file.ps1);)PowerShell的异步启动

notepad.exe filename 

然而,这似乎要禁止脚本完成,如直到记事本对话框关闭才会触发完成事件。

有没有办法让我启动notepad.exe,但让脚本完成执行。也许是我错过了一个PowerShell的东西。最好是这样的,它允许file.ps1的其余部分被阻塞,而该行是异步的。

回答

1

如果您可以使用PowerShell 2.0,然后去后台作业(PsJob)。

PsJob异步运行命令或表达式,并在不与控制台交互的情况下“在后台” 。命令提示符立即返回并且 您可以方便地查询作业结果。您可以在本地或远程计算机上运行背景 作业。

此外,检查:

Is it possible to call powershell cmdlets asynchronously?

+0

不能切换到2.0。这是针对生产环境的。 – maxfridbe 2009-12-02 22:19:32