【发布时间】:2013-04-10 14:12:51
【问题描述】:
我有一个 WindowsXP 控制台程序,它提供交互式 cli 模式(一些 cisco 工具),提示输入用户名和密码。如何以编程方式从 .bat 文件中输入这些内容?
【问题讨论】:
标签: windows batch-file scripting
我有一个 WindowsXP 控制台程序,它提供交互式 cli 模式(一些 cisco 工具),提示输入用户名和密码。如何以编程方式从 .bat 文件中输入这些内容?
【问题讨论】:
标签: windows batch-file scripting
这将取决于工具。
希望 cisco 工具支持命令行参数(-username=foo 等),可以从管道读取命令(echo username | tool.exe),或者可以接受输入文件(tool.exe @input.txt)。
如果它从标准输入获取所有输入,您可以创建一个包含正确顺序输入的文本文件并将其通过管道传输到应用程序。例如,使用以下内容创建一个文件input.txt:
myusername
mypassword
这样做是为了让 tool.exe 从 input.txt 中获取输入:
tool.exe < input.txt
但这又一次取决于工具。
如果没有这些简单的答案,下一个选项是使用 jscript、vbscript 或其他语言将击键发送到 cmd 窗口。见automate a windows command line utility with a batch file - send keystrokes to std input after utility starts。
【讨论】:
tool.exe < input.txt 比type input.txt | tool.exe 效率更高
我遇到了同样的问题,但列出的解决方案都不起作用。 我尝试了不同的方法,以下对我有用:
Command.exe "First Interactive choice" "Second one" "Third"
【讨论】:
sqlite3.exe db.dat ".read query.sql"