2010-11-07 3 views
1

У меня есть программа msdos, которая, когда вы ее выполняете, просит у вас 3 текста, вам нужно ответить на флирт, нажать enter, а затем второй, нажать enter и soo ...Сценарий программы msdos с использованием .bat-файла

Думаете, что ответы всегда одни и те же, как с помощью .bat-файла я могу это написать? Благодаря!

+0

Вы имеете в виду, что они такие же, как если бы каждый раз, когда вы запускаете эти три, в любое время ответ остается прежним? Или просто время от времени? – Ruel

+0

Возможно, это изображение поможет вам: http://img261.imageshack.us/img261/3069/sinttulo3es.jpg – DomingoSL

+0

DOS (наконец) умер с Windows ME, подходящим термином является «консольное приложение». – Tergiver

ответ

2

Если ответы всегда то же самое, вы можете (часто) перенаправить стандартный ввод в текстовый файл, содержащий ответы (по одному на каждой строке, и должна быть новой строки после последнего ответа)

Program.exe -option1 -option2 < answers.txt 

Я говорю «часто», потому что некоторые программы будут кодироваться вокруг стандартного ввода, например «runas».

answers.txt выглядит так:

answer1 
answer2 
answer3 
+0

Спасибо, но я хорошо объясняю себя. Существует не 3 программы, это только одна программа, которая задает мне вопросы по дереву, а затем дает результат. Ответы всегда 3, Ответ1 (нажмите ввод), Ответ2 (нажмите ввод), Ответ3 (нажмите ввод). – DomingoSL

+0

Это работает для 1 программы. –

+0

nop, может быть, это изображение поможет вам: http://img261.imageshack.us/img261/3069/sinttulo3es.jpg – DomingoSL

0

Для того, чтобы написать пакетный скрипт для автоматизации этой задачи вы должны использовать программу, которая имитирует нажатия клавиш в DOS, такие как ключ-подделка.

Альтернативой может быть использование Windows Script Host, обладающего этой способностью изначально.

Пример сценария (в JavaScript) будет что-то вроде:

var objShell = WScript.CreateObject("WScript.Shell"); 
var answer1 = a, answer2 = b, answer3 = c; 


while(true) { 
    var myProg = Wscript.Exec("MyProgram"); 

    WScript.Sleep = 100; 

    WScript.Echo(answer1); 
    WScript.SendKeys("{Enter}"); //Simulate Enter key 
    WScript.Echo(answer2); 
    WScript.SendKeys("{Enter}"); 
    WScript.Echo(answer3); 
    WScript.SendKeys("{Enter}"); 
} 

Сохранить сценарий, как myscript.js.

На DOS Prompt выполните следующую команду:

Cscript myscript.js

Нажмите Ctrl + C, чтобы убить сценарий, когда вы хотите, чтобы это остановить.

Чтобы настроить этот сценарий для ваших нужд, вы можете получить дополнительную информацию here.

+0

Спасибо, но я хорошо объясняю себя.Существует не 3 программы, это только одна программа, которая задает мне вопросы по дереву, а затем дает результат. Ответы всегда 3, Ответ1 (нажмите ввод), Ответ2 (нажмите ввод), Ответ3 (нажмите ввод). – DomingoSL

+0

Возможно, это изображение поможет вам: http://img261.imageshack.us/img261/3069/sinttulo3es.jpg – DomingoSL

+0

Этот скрипт должен работать для вас, просто удалите цикл while, но сохраните содержимое. –

Смежные вопросы