Автоматически выполнять .cmd файл, требующий ввода пользователя - PullRequest
0 голосов
/ 25 октября 2018

У нас есть файл .cmd, который мы хотим выполнять автоматически с помощью Powershell (из выпуска TFS).

Проблема с использованием start-process в Powershell заключается в том, что выполнение застревает в ожидании ввода пользователя (Press any key to continue...).

Есть ли способ, которым мы можем передать переменные этому вызову или вызвать его другим способом, когда нам больше не требуется ввод данных пользователем для этого .cmd?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Powershell не застревает, Start-Process работает правильно - он запускает процесс (предположим, cmd.exe) и ожидает завершения этого процесса, прежде чем продолжить.

cmd.exe запрашивает интерактивныйпользовательский ввод (PAUSE) перед продолжением, снова работает так, как вы его указали.

Проблема в том, что вы работаете не в интерактивном режиме и не предоставляете ввод, необходимый для продолжения.


Вы можете обновить файл cmd и добавить необязательный параметр, чтобы можно было пропустить PAUSE при запуске без присмотра:

if "%1"=="unattended" goto skippause
pause
:skippause

, а затем запустить его с помощью unattended:

CMD /c c:\folder\file.cmd unattended
0 голосов
/ 25 октября 2018

Не используйте Start-Process.

"`n" | & 'C:\path\to\your.cmd'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...