从文本/批处理文件向命令行程序发送输入

从文本/批处理文件向命令行程序发送输入

我是一名机械工程师,熟悉 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

希望这可以帮助!

相关内容