如何解决如何打开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。可以说,如果出现提示,并且它首先关注用户名,那么如果您可以使用一个TAB及其密码,并且可以使用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相同的错误代码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。