【发布时间】:2014-01-02 05:40:06
【问题描述】:
我使用的是 Windows 7 x64。使用 bat 脚本,我需要检查是否能够使用 telnet 连接到服务器上的某些特定端口。如果连接成功,服务器会显示一个菜单,或者类似这样的消息:Connecting To xxxxx...Could not open connection to the host, on port xxxxx: Connect failed。
出于我的目的,服务器有几个端口要测试,我不想通过登录或导航菜单使事情复杂化。我只想要一个简单的输出来指示连接是否成功。检查退出状态不起作用。我不想使用 Visual Basic。知道如何使用 bat 脚本检查连接状态吗?目前我目视检查并使用以下脚本打开连接
@ECHO OFF
setlocal EnableDelayedExpansion
echo.
SET /P host_name="Please enter the hostname: "
echo Please enter the port numbers followed by the Enter key:
echo.
set num=0
:Loop
set /a num=num+1
SET /P mwa_port%num%=""
if "!mwa_port%num%!"=="" (goto Start)
goto Loop
:Start
set /a num=num-1
for /L %%i in (1,1,%num%) do (
echo Trying to log into port !mwa_port%%i! of %host_name%
start /min "" "C:\Windows\System32\telnet.exe" %host_name% !mwa_port%%i!
REM echo Exit Code is %errorlevel%
)
:End
endlocal
echo.
SET /P leave="Press any key to exit.."
这是脚本的示例输出:
Please enter the hostname : abcdefg.hijkl.mnop
Please enter the port numbers followed by the Enter key:
10001
10002
10003
10004
10005
Trying to log into port 10001 of abcdefg.hijkl.mnop
Trying to log into port 10002 of abcdefg.hijkl.mnop
Trying to log into port 10003 of abcdefg.hijkl.mnop
Trying to log into port 10004 of abcdefg.hijkl.mnop
Trying to log into port 10005 of abcdefg.hijkl.mnop
Press any key to exit..
然后它会在最小化状态下打开 5 个 telnet 窗口,每个窗口在成功登录时都有一个菜单
【问题讨论】:
-
Windows telnet.exe 不可编写脚本。此外,您无法通过 find.exe 管道输出,当连接成功时,窗口将挂起。有一个可编写脚本的 telnet 工具
Telnet Scripting Tool v.1.0可以帮助您。
标签: windows batch-file automation telnet