Войти

Показать полную графическую версию : Автоматизация выполнения программы


peaceduke243@vk
25-08-2016, 01:02
Доброго времени суток Дорогие Форумчане,

Проблема следующая: есть программа, которая открывается через консоль и в последствии выводит в консоль некоторый текст. После того как она выводит этот текст она требует нажать Enter чтобы закрыться.
Мне нужно сохранять выводимый ею текст в .txt файл, для этого я воспользовался следующим синтаксисом
programma.exe > log.txt
Далее я создал .bat с этой командой и планировал поставить ее в запуск по расписанию, т.к. нужно, чтобы программа запускалась и сохраняла этот текст в лог без меня в определенные моменты.
НО! Пока я сам в открывшемся окне не нажму тот самый злосчастный Enter программа не закрывается и не сохраняет текст в .txt, а сам я нажимать Enter не смогу, т.к. меня просто не будет у компьютера в этот момент.
Отсюда вопрос(ы):

Как научить .bat файл самому нажимать Enter
или
Как сохранять текст в из командной строки в .txt фал без >
или
Как без стороннего софта создать скрип нажимающий Enter для конкретно этого процесса "programma.exe"

Да, и реализовать это все хотелось бы используя минимум стороннего софта.

Заранее спасибо!

Iska
25-08-2016, 01:33
есть программа »
Назовите её, если есть ссылка на загрузку — приведите. Если можете её выложить — упакуйте в архив и выложите.

Как научить .bat файл самому нажимать Enter »
Вообще-то никак. Если же там на самом деле ожидается не нажатие Enter, а простое ожидание ввода строки со stdin — можете попробовать так:
echo. | >"log.txt" programma.exe

megaloman
25-08-2016, 17:55
Как научить .bat файл самому нажимать Enter - вообще-то никак. Но попробуйте vbs-скрипт. ProgaName = "C:\WINDOWS\system32\CMD.exe /A /C ""Echo %Date% %Time% >>log.txt &Pause &Echo kuku &Pause""" ' Полный путь к программе

Set WS = CreateObject("WScript.Shell")
theProga = WS.Run(ProgaName,1,false) ' Запустим программу

WScript.Sleep (5000) ' Ждем 5 секунд

WS.SendKeys ("{ENTER}") ' Пошлём ENTER Здесь в качестве примера программы я взял стандартный CMD. Командная строка в параметрах этой программы пишет в лог дату и время и выходит на паузу. Далее скрипт посылает Enter для продолжения работы и далее CMD выдаёт эхо kuku на экран и выходит на паузу- я сделал так, чтобы убедится что программа работает. Задержка (у меня 5 сек) перед посылкой Enter необходима, чтобы дать программе загрузиться.
Вам повидимому вместо Echo %Date% %Time% надо поставить свою прогу, а &Pause &Echo kuku &Pause удалить. Не буду есть свою шляпу, если не заработает с Вашей прогой, я её не тестировал.
Мой пример работает.




© OSzone.net 2001-2012