|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Время ожидания окончания работы программы |
|
|
[решено] Время ожидания окончания работы программы
|
Пользователь Сообщения: 121 |
Доброго времени суток!
Возникла такая проблема необходимо запустить bat скрипт который в свою очередь выполняет свои задачи но при этом часто возникают ошибки о которых bat скрипт не знает и считает это продолжением своей работы. Я хочу реализовать на AutoIT запуск этого bat скрипта и по истечению определенного времени если bat скрипт не выполняется до конца AutoIT отсылал net send на определенные компьютеры что произошла ошибка. Как можно это реализовать в AutoIT? Заранее благодарен! |
|
Отправлено: 16:49, 27-02-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Во-первых, как AutoIT должен определить, что "bat скрипт не выполняется до конца"?
Во-вторых, не проще ли в таком случае переписать весь BAT на AutoIT? |
Отправлено: 04:37, 28-02-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Ну я так думаю можно осуществить с помощью RunWait с ожиданием окончания запущенного скрипта можно конечно и перебить весть скрипт на AutoIT но суть проблемы остается та же если часть кода не выполняется определенное время нужно отослать net send на определенные компьютеры. Вот именно это у меня и не получается осуществить...
|
Отправлено: 10:13, 02-03-2009 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать отослать NET SEND думаю тоже не проблема (или проблема?)... мне к примеру неясно, что значит "часть кода не выполняется определенное время"?.. в смысле "время выполнения CMD больше заданного интервала" или что-то другое?.. давайте без двусмысленностей в формулировках, а еще лучше выложить какой-никакой пример
|
Отправлено: 11:47, 02-03-2009 | #4 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Хорошо рассказываю дословно ситуацию. Есть сервер КПК на который через интернет сливают заявки бегающие в поле агенты, затем каждые 15 минут происходит выгрузка этих заявок из КПК в 1С, вот тут и возникает проблема. При выгрузке заявок из базы данных КПК в пост операцию забит этот самый батник который пинает 1С на их загрузку в базу. Но при этом бывает возникают проблемы как пример возьмем проблему занят каталог пользователя. 1С выдает при этом ошибку в ожидании вмешательства пользователя. В свою очередь батник все еще считает что задача выполняется и это может длится до бесконечности. Поэтому и хочется найти вариант если этот батник не выполнился так скажем за 10 минут отправить на определенные компьютеры net send о том что операция задержалась...
|
|
Последний раз редактировалось SanyaJoker, 02-03-2009 в 15:48. Отправлено: 14:12, 02-03-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата SanyaJoker:
Dim $aCOMP[3] = ["COMP1","COMP2","COMP3"] ; Команда запуска скрипта $CMD1 = @ComSpec & " /c " & 'C:\TEST\script.cmd' $TEXT = "Текст сообщения" ; Запуск скрипта в скрытом окне $PID = Run($CMD1, "", @SW_HIDE) While 1 $RET = ProcessWaitClose ($PID, 600) ; ожидание завершения If $RET Then ExitLoop ; выход при успехе For $i=0 To UBound($aCOMP)-1 ; перебираем хосты ; Команда отправки сообщения очередному хосту $CMD2 = @ComSpec & " /c " &'NET SEND '& $aCOMP[$i] &' "'& $TEXT &'"' RunWait($CMD2, "", @SW_HIDE) ; запуск CMD команды в скрытом окне Next WEnd |
|
Последний раз редактировалось amel27, 04-03-2009 в 12:01. Отправлено: 14:06, 03-03-2009 | #6 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Скрипт запускается все работает. Вот тока ожидание завершения не проходит (то есть 1С выдает ошибку а скрип висит так понимаю у меня ожидание стоит 1 секунда). Перебил на свой лад тестил на минимальном времени ожидания завершения сейчас он выглядит так:
Dim $aCOMP[3] = ["admin1","admin3","kpk"] ; Команда запуска скрипта $CMD1 = @ComSpec & " /c " & 'D:\1C\URBD\Vigr_KPK_ZEN.cmd' $TEXT = "Задержалась выгрузка на 1cserver2" ; Запуск скрипта в скрытом окне $PID = Run($CMD1, "", @SW_HIDE) While 1 $RET = ProcessWaitClose ($PID, 1) ; ожидание завершения If $RET Then ExitLoop ; выход при успехе For $i=0 To UBound($aCOMP)-1 ; перебираем хосты ; Команда отправки сообщения очередному хосту $CMD2 = @ComSpec & " /c " &'NET SEND '& $aCOMP[$i] &'"'& $TEXT &'"' RunWait($CMD2, "", @SW_HIDE) ; запуск CMD команды в скрытом окне Next WEnd |
Последний раз редактировалось SanyaJoker, 03-03-2009 в 18:38. Отправлено: 18:27, 03-03-2009 | #7 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата SanyaJoker:
...сообщения-то отправляются хоть? |
|
Отправлено: 07:30, 04-03-2009 | #8 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Все правильно, как раз это и нужно но сообщение не отправляется.
|
Отправлено: 10:42, 04-03-2009 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата SanyaJoker:
|
|
Отправлено: 12:05, 04-03-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как сократить время ожидания завершения работы системы | Flick | Microsoft Windows NT/2000/2003 | 10 | 20-12-2012 17:11 | |
HDD - выключился Пк во время работы программы Acronis DD 10 по изменению размера HDD | руслан-р | Накопители (SSD, HDD, USB Flash) | 1 | 16-12-2009 02:03 | |
Службы - FTP Ошибка "Сервер не отвечает (время ожидания истекло)!" | Veland | Сетевые технологии | 1 | 07-01-2009 00:30 | |
Интернет - Время ожидания соединения истекло | slenok | Microsoft Windows 2000/XP | 15 | 29-03-2008 10:44 | |
Через некоторое время после окончания установки ОС win входит под Администратором ... | AlexKan | Автоматическая установка Windows 2000/XP/2003 | 11 | 27-08-2006 12:51 |
|