【问题标题】:controlling interactive console programs from batch file (cmd)从批处理文件 (cmd) 控制交互式控制台程序
【发布时间】:2013-04-10 14:12:51
【问题描述】:

我有一个 WindowsXP 控制台程序,它提供交互式 cli 模式(一些 cisco 工具),提示输入用户名和密码。如何以编程方式从 .bat 文件中输入这些内容?

【问题讨论】:

    标签: windows batch-file scripting


    【解决方案1】:

    这将取决于工具。

    希望 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 &lt; input.txttype input.txt | tool.exe 效率更高
    • 你是对的,我需要将击键发送到窗口,因为 cisco 工具试图“安全”,这意味着边界不可用。
    【解决方案2】:

    我遇到了同样的问题,但列出的解决方案都不起作用。 我尝试了不同的方法,以下对我有用:

    Command.exe "First Interactive choice" "Second one" "Third"
    

    【讨论】:

    • 这个答案帮助我将文件传递给 sqlite:sqlite3.exe db.dat ".read query.sql"
    猜你喜欢
    • 2020-05-11
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    相关资源
    最近更新 更多