Отправка ввода в программу командной строки из текстового / пакетного файла
Я инженер-механик с программированием в VC++. Наша отрасль использует программу DOS и требует 8 пользовательских входов. Мы должны кормить его вручную каждый раз. Можем ли мы автоматизировать этот процесс, поместив ввод в текстовый файл / пакетный файл. Мы хотим автоматизировать этот процесс подачи данных в программу командной строки.
Я буду очень рад получить ответ, основанный на вашем опыте.
3 ответа
Я думаю, что проблема была неправильно истолкована.
Если вход в программу обычно идет:
> program
Enter input1: A
Enter input2: B
Enter input3: C
Enter input4: D
Затем для упрощения операции составьте текстовый файл (program.inp) как:
A
B
C
D
А затем запустите его как:
> program <program.inp
Предполагая, что в программе уже нет такого метода, как получение параметра с помощью входного или входного файла, это звучит как программная проблема автоматической отправки ключей в программу. 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}"
Я нашел самый простой способ - использовать этот код:
@echo off set / p input = echo% input%> example.txt
Надеюсь это поможет!