командная строка для ожидания ввода, а затем обработать следующий шаг - PullRequest
0 голосов
/ 17 декабря 2018

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

На одном из этапов я в основном открываю файл .exe и вызываю файл powershell, чтобы имитировать нажатие клавиши ввода, пока что все хорошо, он открывает инструменты и начинает запускать его, однакото, что происходит, - то, что командная строка выполняет следующий этап, не ожидая завершения файла .exe, который является важным шагом, таким образом, этот процесс создает ввод для следующего этапа.

командная строка, которую я использую:

START /WAIT powershell -command .\bat.ps1

, который запускает этот скрипт powershell

[System.Diagnostics.Process]::Start("C:\folder\file.exe", "C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode")

$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('title of the application window')
Sleep 1
$wshell.SendKeys('~')

Я хотел бы знать, есть ли обходной путь, который заставляет меня дождаться окончания работы файла .exe, а затем начать новый этап.

спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Я нашел обходной путь, который частично отвечает на мой вопрос.

Я поставил команду START / WAIT после команды powershell, поэтому, пока .exe работает, следующий этап находится в ожидании, однако яПридется нажать «y», чтобы продолжить процесс после завершения файла .exe, что является началом.

Еще раз спасибо

0 голосов
/ 17 декабря 2018

Пытались ли вы использовать командлет Start-Process и включить параметр -Wait вместо прямого вызова Start ()?

В командной строке powershell попробуйте help start-process, чтобы увидеть, есть ли некоторые издругие параметры, такие как -NoNewWindow также будут полезны для вас.

...