Запуск программы методом Ехес

Оцените статью

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

В следующем примере сценарий использует программу ping, чтобы протестировать список интернет-хостов и убедиться в их присутствии в сети. Если какой — нибудь хост будет отключен, выводится сообщение:

В большинстве случаев требуется, чтобы сценарий, прежде чем продолжить выполнение, дождался, пока программа не завершит свою работу. Если ваш сценарий считывает весь программный вывод в цикле, управляемом StdOut. EndOfStneam, как в предыдущем примере, то все в порядке, поскольку EndOfStneam не возвращает Tnue, пока не произойдет выход из программы, и не будет считана вся выводимая ею информация.

Но если программный вывод не считывается, в сценарии должна быть предусмотрена периодическая проверка на продолжение выполнения программы (Status = 0), и если программа все еще выполняется, нужно выждать: set Метод Sleep используется здесь для приостановки выполнения сценария в ожидании завершения работы программы. Если бы пауза не была вставлена, цикл выполнялся бы в ожидании завершения работы программы слишком быстро. Если программа сценария будет выдавать запросы к процессору в очень высоком темпе, внешней программе будет оставаться меньше времени для выполнения ее задачи. Если нужно отпустить программе, скажем, пять секунд на самостоятельное завершение работы, и, в случае продолжения работы сверх этого срока осуществить

Принудительное завершение, можно воспользоваться циклом for с ограничением количества проходов цикла: for В данном случае время ожидания составляет до 50 раз по 100 мс, что в целом займет не более пяти секунд. Если программа завершается раньше, оператор exit fon избавляет нас от лишнего ожидания. После выхода из цикла метод Tenminate прекращает выполнение программы, если она еще не сделала этого самостоятельно.

Комментирование закрыто.

Вверх страницы
x