Вызов глагола печати в Windows PowerShell без использования Start-Sleep - PullRequest
1 голос
/ 29 июня 2019

У меня есть электронное приложение (nodejs), и у меня есть требование распечатывать из него фотографии. Я использую команду powershell:

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

Это работает, но как только я удаляю Start-Sleep, окно печати открывается на полсекунды и закрывается само по себе. Затем, если я этого не сделаю и окно откроется, даже после того, как пользователь нажмет кнопку закрытия в строке заголовка, процесс powershell будет оставаться открытым до тех пор, пока не истечет время ожидания. Есть ли способ открыть это окно и очистить его память, когда пользователь закрывает его? Много чем

1 Ответ

4 голосов
/ 29 июня 2019

Добавьте параметр -Wait к вашему вызову Start-Process.От Start-Process:

-Wait

Указывает, что этот командлет ожидает завершения указанного процесса и его потомков, прежде чем принимать дополнительные входные данные.Этот параметр подавляет командную строку или сохраняет окно до завершения процессов.

В противном случае PowerShell запускает процесс и переходит к выполнению сценария.Вот почему вам нужен Start-Sleep.Поэтому измените свой код на:

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

, если вы используете PowerShell 5.x, вы также можете попробовать `Out-Printer ', см. Эту ссылку для дополнительной документации.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...