2

Я инженер-механик с программированием в VC++. Наша отрасль использует программу DOS и требует 8 входов пользователя. Мы должны кормить его вручную каждый раз. Можем ли мы автоматизировать этот процесс, поместив ввод в текстовый файл / пакетный файл. Мы хотим автоматизировать этот процесс подачи данных в программу командной строки.

Я буду очень рад получить ответ на основании вашего опыта.

3 ответа3

1

если в программе уже нет такого метода, как получение параметра с помощью входного или входного файла, то это звучит как программная проблема автоматической отправки ключей в программу. VBscript имеет SendKeys. VC++, без сомнения, имеет это или эквивалент. в противном случае это autohotkeys/autoit. Но посмотрите любой пример sendkeys в vbscript, и вы увидите пример.

Попробуйте вручную скопировать команду copy con чтобы увидеть, как она работает. скопировать con c:\blah\ aa

затем вы вводите текст файла и нажимаете Ctrl-Z, чтобы написать его.

Так что это связано с вводом вещей в командной строке.

И попробуйте этот VBScript, который делает это автоматически

для командной строки. называйте это как угодно

dim a
a="copy con c:\blah\file.123"
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.SendKeys a
WshShell.SendKeys "dsdsfd{ENTER}sdfds{ENTER}sleep for 2000ms and will enter more{ENTER}"
Wscript.Sleep 2000
WshShell.SendKeys "ewrwrewrewwe{ENTER}"
WshShell.SendKeys "sending ctrl-z and enter {ENTER}"
Wscript.Sleep 2000
WshShell.SendKeys "^Z{ENTER}"
0

Я нашел самый простой способ - использовать этот код:

@echo off set /p input = echo% input%> example.txt

Надеюсь это поможет!

0

Я думаю, что проблема была неправильно истолкована.

Если вход в программу обычно идет:

> program
Enter input1:   A
Enter input2:   B
Enter input3:   C
Enter input4:   D

Затем для упрощения операции составьте текстовый файл (program.inp) как:

A
B
C
D

А затем запустите его как:

> program <program.inp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .