Powershell 异步启动

发布于 2024-08-13 20:45:44 字数 269 浏览 6 评论 0原文

我有一个从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

远山浅 2024-08-20 20:45:44

如果您可以使用 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?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文