【问题标题】:Calling print verb in windows powershell without using Start-Sleep在不使用 Start-Sleep 的情况下在 windows powershell 中调用 print 动词
【发布时间】:2019-06-29 14:38:14
【问题描述】:

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

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

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

【问题讨论】:

  • 它实际上是一个显示的打印预览对话框。我期待它在用户选择设置时打开等等
  • 你能在powershell中运行我的代码来验证吗?
  • 我默认使用微软照片。我的意思是,如果您从 powershell 运行打印而不添加睡眠,它会显示 1 秒钟并关闭。有时它根本不显示。试试看自己看看

标签: powershell electron


【解决方案1】:

-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”,请参阅此link 以获取更多文档。

希望对您有所帮助。

【讨论】:

  • 谢谢。这可行,但有时会出现错误提示 Start-Process : 此命令无法完全运行,因为系统无法找到所需的所有信息。在任何情况下都会将其标记为正确。
猜你喜欢
  • 1970-01-01
  • 2021-07-10
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多