Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Автоматизация выполнения программы (http://forum.oszone.net/showthread.php?t=318153)

peaceduke243@vk 25-08-2016 01:02 2662955

Автоматизация выполнения программы
 
Доброго времени суток Дорогие Форумчане,

Проблема следующая: есть программа, которая открывается через консоль и в последствии выводит в консоль некоторый текст. После того как она выводит этот текст она требует нажать Enter чтобы закрыться.
Мне нужно сохранять выводимый ею текст в .txt файл, для этого я воспользовался следующим синтаксисом
Код:

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

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

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

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

Iska 25-08-2016 01:33 2662960

Цитата:

Цитата peaceduke243@vk
есть программа »

Назовите её, если есть ссылка на загрузку — приведите. Если можете её выложить — упакуйте в архив и выложите.

Цитата:

Цитата peaceduke243@vk
Как научить .bat файл самому нажимать Enter »

Вообще-то никак. Если же там на самом деле ожидается не нажатие Enter, а простое ожидание ввода строки со stdin — можете попробовать так:
Код:

echo. | >"log.txt" programma.exe

megaloman 25-08-2016 17:55 2663159

Как научить .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 удалить. Не буду есть свою шляпу, если не заработает с Вашей прогой, я её не тестировал.
Мой пример работает.


Время: 17:38.

Время: 17:38.
© OSzone.net 2001-