Показать полную графическую версию : [решено] Запуск программы и отправка в нее команд со временем
Добрый день!
Помогите написать батник, который запустит программу и будет посылать в нее команду каждые 5 минут (программа так же является батником).
и будет посылать в нее команду »
Что Вы под этим подразумеваете? Буквально.
Iska, Батник открывает батник и пишет команды во 2ой батник. Например, батник, который запустит cmd и напишет в ней "chkdsk /f /r"
Не могу понять Вашу глобальную цель.
Iska, нет никакой глобальной цели, надеюсь кто-нибудь другой меня поймет.
Не думаю. Попробуйте для начала разъяснить разницу между выбранной Вами моделью и простым пакетным файлом вида:
@echo off
setlocal enableextensions enabledelayedexpansion
:Repeat
start "" chkdsk.exe /f /r
>nul ping -n 301 127.0.0.1
goto :Repeat
endlocal
exit /b 0
Гуллипут
16-12-2013, 22:52
Батник вряд ли без посредства дополнительных программ сможет посылать команды другому батнику. Здесь нужна по крайней мере программа, которая для другого приложения имитирует нажатия клавиш. В батнике своих средств для этого нет. COM-сервером CMD тоже не является (насколько мне известно).
Можно использовать WSH, где есть метод SendKeys. Но это довольно геморройно.
Хотя можно, например, сделать так:
2-ой батник регулярно проверяет наличие в заданном каталоге батника с заданным именем (например, for_commands\4run.bat) и, найдя, выполняет его, после чего удаляет. А 1-ый батник создаёт для него такой батник for_commands\4run.bat с завидной регулярностью. :-) Например, командой echo:
echo chkdsk /f /r>for_commands\4run.bat
Когда-то я так делал, да уже почти забыл.
Iska, я знаю один случай, когда это может пригодиться. Я для этого и использовал когда-то этот метод: первый батник работал на одной машине в сети, а второй - на другой. Только вот это: батник, который запустит программу » под мой случай не подходит. Но, может быть, человек неточно выразился ?
Батник вряд ли без посредства дополнительных программ сможет посылать команды другому батнику. Здесь нужна по крайней мере программа, которая для другого приложения имитирует нажатия клавиш. В батнике своих средств для этого нет. COM-сервером CMD тоже не является (насколько мне известно).
Можно использовать WSH, где есть метод SendKeys. Но это довольно геморройно. »
Послать что-либо пакетному файлу можно только на этапе ожидания ввода. Например, путём конвейера. А затем пытаться разбирать её и на основе этого разбора предпринимать какие-то действия. Но не более. Для переназначения стандартных потоков нужно запускать пакетный файл как дочерний. Так что идея отправлять команды пакетному файлу из другого пакетного файла — это из области ненаучной фантастики.
Хотя можно, например, сделать так:
2-ой батник регулярно проверяет наличие в заданном каталоге »
Это называется «проксирование». Подобное вполне реально и допустимо.
Но, может быть, человек неточно выразился ? »
Автор для себя уже решил — как, и ему невдомёк, что задача может вовсе не нуждаться в том решении, которое он высказал. А может решаться проще, понятнее и логичнее. Но он молчит как палестинский партизан.
Автор для себя уже решил — как, и ему невдомёк, что задача может вовсе не нуждаться в том решении, которое он высказал. А может решаться проще, понятнее и логичнее. Но он молчит как палестинский партизан.
У меня есть программа на java, мне нужно запустить ее и посылать в нее команду каждые 5 минут, программа работает в режиме cmd. Я не могу написать вопрос проще.
Гуллипут
17-12-2013, 23:09
(программа так же является батником) » А теперь оказывается, что это программа на java. Вот чем вы нас запутали. "программа на java" является батником = логическое значение False. "Поздравляю вас, гражданин, соврамши" (Булгаков).
Но всё равно вряд ли батник сможет передавать команды java-программе без помощи других программ.
программа работает в режиме cmd » - а это что означает ?
В общем, я понял задачу так:
1. Есть программа на java. которая не подлежит изменению и работает в консольном режиме: ввод и вывод, как в cmd;
2. Требуется написать батник, который её запустит и будет подавать ей команды.
Правильно ?
Правильно ? »
Да, извините за то, что неправильно выразился.
Гуллипут
19-12-2013, 21:58
Можно попробовать написать что-то в духе (навскидку):
cmd /c bat2.bat|java-программа
*** bat2.bat ***
:begin
if exist com.txt (
type com.txt
del com.txt
)
goto begin
*** bat1.bat ***
echo chkdsk>com.txt
Гуллипут »
А как заставить ее выполнять команды каждые 5 минут?
Гуллипут
20-12-2013, 00:31
А как заставить ее выполнять команды каждые 5 минут? »
Так надо подавать команды каждые пять минут. Например, так:
:loop
echo Komanda>com.txt
rem Пауза 5 минут
ping localhost -n 300
goto loop
Гуллипут, Большое спасибо!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.