Powershell 异步启动
我有一个从 ac# 调用执行的 powershell 脚本(例如 Process.Start(powershell.exe file.ps1);),
notepad.exe filename
但这似乎会阻止脚本完成,因为在记事本对话框关闭之前不会触发完成事件。
有没有办法让我启动 notepad.exe 但让脚本完成执行。也许是我错过了一个 powershell 的东西。最好是允许 file.ps1 的其余部分阻塞,而只有该行是异步的。
I have a powershell script which executes from a c# call (ex.. Process.Start(powershell.exe file.ps1);)
notepad.exe filename
this however seems to block script completion, as the event of completion is not fired until the notepad dialog is closed.
Is there a way for me to start notepad.exe but let the script complete execution. Maybe a powershell thing I missed. Preferably it would be something that allows the rest of file.ps1 to be blocking while just that line is async.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您可以使用 PowerShell 2.0,则可以使用后台作业 (PsJob)。
PsJob 在“后台”异步运行命令或表达式
无需与控制台交互。命令提示符立即返回并
您可以在方便的时候查询工作结果。可以后台运行
本地或远程计算机上的作业。
另外,请检查以下内容:
是否可以异步调用 powershell cmdlet?
If you can use PowerShell 2.0, then go for background jobs (PsJob).
A PsJob runs a command or expression asynchronously and "in the background"
without interacting with the console. The command prompt returns immediately and
you can query for the job results at your convenience. You can run background
jobs on a local or remote computer.
Also, check this:
Is it possible to call powershell cmdlets asynchronously?