我是一名机械工程师,熟悉 VC++ 编程。我们的行业使用 DOS 程序,需要 8 个用户输入。我们每次都必须手动输入。我们能否通过将输入放入文本文件/批处理文件中来自动化此过程。我们希望自动化将数据输入命令行程序的过程。
我很高兴能根据您的经验得到一些答案。
答案1
假设程序还没有像使用输入或输入文件获取参数的方法,那么这听起来像是自动将键发送到程序的编程问题。VBscript 有 SendKeys。VC++ 无疑有这个或等效的。否则就是 autohotkeys/autoit。但查找 vbscript 中 sendkeys 的任何示例,您都会看到一个例子。
手动尝试该copy con
命令以查看其如何工作。copy con c:\blah\aa
然后输入文件的文本,按 Ctrl-Z 进行写入。
所以这涉及在命令行上输入内容。
尝试一下这个 vbscript,它会自动执行该操作
用于命令行。将其称为 whatever.vbs
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}"
答案2
我认为这个问题被误解了。
如果程序输入正常:
> program
Enter input1: A
Enter input2: B
Enter input3: C
Enter input4: D
然后为了简化操作,创建一个文本文件(program.inp)如下:
A
B
C
D
然后按如下方式运行:
> program <program.inp
答案3
我发现最简单的方法是使用以下代码:
@echo off set /p 输入= echo %input%>example.txt
希望这可以帮助!