powershell - 在不使用 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 进程仍然保持打开状态,直到超时完成。有没有办法让这个窗口打开并在用户关闭它时清理它的内存?许多比
解决方案
将-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”,请参阅此链接以获取更多文档。
希望有帮助。
推荐阅读
- javascript - 无法将道具传递给组件 - 行为不一致
- php - 我不能将引导程序用于 wordpress 主题标题链接
- apache-spark - 根据长度值 Pyspark Dataframe 删除列
- html - 我有一个输入框,并希望根据输入来定位美元符号
- javascript - 当在单击处理程序中使用两个 useState setter 时,只有一个有效
- java - 解决google adsense管理api的“400 Bad Request { "error" : "invalid_grant", "error_description" : "Bad Request" }" 问题
- reactjs - React Bootstrap 将导航栏的链接更改为活动
- kotlin - 使用 ConcurrentHashMap 进行 Kotlin 并发,同时在不使用锁的情况下检索和删除
- batch-file - 如何在批处理块内回显变量集,即在括号之间,离开块后
- libgdx - Libgdx 表格对齐项目