我正在编写一个脚本,该脚本循环遍历大量 IP 地址,telnet 每个地址,发送登录信息,然后发送命令退出。然后它检查日志文件中的某个字符串,如果包含该字符串,它会输出“它是 UPS!” 如果不包含该字符串,则为“不是 UPS”。截至目前,脚本在一个小错误中执行得很好,我无法让 telnet 会话返回到下一次迭代的命令提示符。如果我在 telnet 会话断开后按下回车键(或任何键),脚本将继续进行下一次迭代,但我似乎无法让脚本自动发送该击键。这是代码:
脚本入口点:
@echo off
FOR %%i IN (10.40.9.131 10.40.1.205) DO logtest.bat %%i
logtest.bat:
@echo off
cscript SendKeys.vbs
telnet %1 -f diditwork.txt
find /c "User" diditwork.txt
if errorlevel 1 goto notfound
echo Tis a UPS
goto done
:notfound
echo not a ups
goto done
:done
SendKeys.vbs:
set OBJECT=WScript.CreateObject("WScript.Shell")
WScript.sleep 100
OBJECT.SendKeys "apc{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "apc{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "4{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "quit{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "{ENTER}"
WScript.sleep 50