IP アドレスの大きなリストをループし、それぞれ telnet を実行し、ログイン情報を送信し、終了するコマンドを送信するスクリプトを作成しています。次に、ログファイルで特定の文字列をチェックし、文字列が含まれている場合は「UPS です!」と出力します。文字列が含まれていない場合は「UPS ではありません」。現時点では、スクリプトは 1 つの小さなエラーに対して execpt を美しく実行します。次の反復のために 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