首页 > 解决方案 > 在不使用 Start-Sleep 的情况下在 windows powershell 中调用 print 动词

问题描述

我有一个电子应用程序(nodejs)并且需要从中打印图片。我正在使用 powershell 命令:

$path = "C:\person.jpg";
Start-Process -FilePath $path -Verb Print | Out-Null;
Start-Sleep -s 150;

这可行,但是一旦我删除 Start-Sleep,打印窗口就会打开半秒钟并自行关闭。然后,如果我不这样做并且窗口打开,即使用户按下标题栏上的关闭按钮,powershell 进程仍然保持打开状态,直到超时完成。有没有办法让这个窗口打开并在用户关闭它时清理它的内存?许多比

标签: powershellelectron

解决方案


-Wait参数添加到您的Start-Process调用中。来自Start-Process

-等待

指示此 cmdlet 在接受更多输入之前等待指定进程及其后代完成。此参数抑制命令提示符或保留窗口,直到进程完成。

否则,PowerShell 会启动进程并继续执行脚本。这就是为什么你需要一个Start-Sleep. 因此,将您的代码更改为:

$path = "C:\person.jpg";
Start-Process -FilePath $path -Verb Print -Wait | Out-Null;

如果您使用的是 PowerShell 5.x,您还可以尝试“Out-Printer”,请参阅此链接以获取更多文档。

希望有帮助。


推荐阅读