如何打开cmd窗口并使用批处理文件传递硬编码的值?

问题描述

| 我找到了许多解决方案,这些解决方案接近我想要的,但不完全是我自己,也没有运气。 我正在尝试创建一个可用于自动执行防火墙身份验证的脚本。我现在通过打开cmd窗口并尝试远程登录到防火墙后面的设备/电脑来手动执行此操作。短暂的停顿后,系统提示我输入用户名和密码。 有什么办法可以写一个可以打开cmd窗口并提供这两个值的批处理文件? 目前它是这样的:
C:> telnet device (I type this in to prompt authentication)
(short pause)
-- Firewall Authentication --
Username: (asks for input which I provide then press enter)
Password: (same as username)
-- Authentication Successful --
感谢您对此的任何帮助。如果您需要更多细节,请发表评论:)     

解决方法

        您可以为它的sendkey做一个小的vbscript。可以说,如果出现提示,并且它首先关注用户名,那么如果您可以使用一个TA​​B及其密码,并且可以使用RETURN键提交凭据,则可以将其添加到批处理中脚本:
CSCRIPT //NoLogo //B \"C:\\Folder\\sendkeys.vbs\"
PING 1.1.1.1 -n 1 -w 11000 >NUL
然后使用记事本创建一个名为sendkeys.vbs的文件(在此示例中),并添加以下代码行:
set wshShell = WScript.CreateObject(\"WSCript.shell\")

wscript.sleep 5000
wshShell.sendkeys \"type username here\"
wscript.sleep 1000
wshShell.sendkeys \"{ENTER}\"
wscript.sleep 3000 
wshShell.sendkeys \"type password here\"
wscript.sleep 1000
wshShell.sendkeys \"{ENTER}\"
WScript.Quit
我这样做是为了通过命令行在Thunderbird中自动发送电子邮件。     ,        恐怕您无法执行此操作,因为telnet是可执行文件,因此输入(用户名和密码)的处理只是该程序的内部逻辑。 仅当telnet支持将用户名和密码作为命令行参数时,这才有可能。 但是,存在一些棘手的解决方法。请您的朋友(程序员)编写一个简单的程序, 接受用户名和密码作为命令行参数 使用重定向的控制台输入/输出运行telnet.exe 跟踪控制台输出中的更改(等待用户输入) 模拟输入用户名和密码 返回与telnet相同的错误代码