You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:编写Bat脚本实现Telnet自动登录及后续操作

实现Telnet自动登录与操作的脚本方案

Windows原生Telnet工具是交互式的,无法直接通过纯批处理完成自动输入,以下两种方案可解决你的需求:

方案一:VBScript + 批处理(模拟键盘输入)

通过模拟人工键盘操作实现自动化,适合快速搭建脚本。

  1. 新建telnet_auto.vbs脚本,内容如下:
Set WshShell = WScript.CreateObject("WScript.Shell")
' 启动Telnet并连接目标服务器
WshShell.Run "telnet 12.122.444.30"
WScript.Sleep 2000 ' 等待连接建立,根据实际网络速度调整时长

' 若登录前需按回车激活提示,取消下面两行注释
' WshShell.SendKeys "{ENTER}"
' WScript.Sleep 500

' 输入登录账号
WshShell.SendKeys "你的账号{ENTER}"
WScript.Sleep 1000

' 输入登录密码
WshShell.SendKeys "你的密码{ENTER}"
WScript.Sleep 1000

' 执行需要的操作命令,按需添加或修改
WshShell.SendKeys "操作命令1{ENTER}"
WScript.Sleep 1000
WshShell.SendKeys "操作命令2{ENTER}"
WScript.Sleep 1000

' 输入目标数字并回车
WshShell.SendKeys "目标数字{ENTER}"
  1. 新建run_telnet.bat批处理文件,内容如下:
@echo off
cscript //nologo telnet_auto.vbs

注意事项:

  • 将脚本中的你的账号、你的密码、操作命令1/2、目标数字替换为实际内容
  • 调整WScript.Sleep的数值,确保每一步操作有足够的响应时间,避免输入过快导致失败

方案二:PowerShell脚本(TCP套接字通信,更可靠)

直接通过TCP协议与Telnet服务器通信,无需模拟键盘,稳定性更强。

新建AutoTelnet.ps1脚本,内容如下:

# 连接Telnet服务器
$telnetServer = "12.122.444.30"
$telnetPort = 23
$telnet = New-Object System.Net.Sockets.TcpClient($telnetServer, $telnetPort)

if ($telnet.Connected) {
    $stream = $telnet.GetStream()
    $reader = New-Object System.IO.StreamReader($stream)
    $writer = New-Object System.IO.StreamWriter($stream)
    $writer.AutoFlush = $true

    # 等待登录提示(示例:匹配"Login:"字符串,根据服务器实际提示修改)
    while ($true) {
        $line = $reader.ReadLine()
        if ($line -match "Login:") {
            break
        }
    }

    # 输入账号
    $writer.WriteLine("你的账号")
    Start-Sleep -Seconds 1

    # 等待密码提示(示例:匹配"Password:"字符串)
    while ($true) {
        $line = $reader.ReadLine()
        if ($line -match "Password:") {
            break
        }
    }

    # 输入密码
    $writer.WriteLine("你的密码")
    Start-Sleep -Seconds 1

    # 执行操作命令
    $writer.WriteLine("操作命令1")
    Start-Sleep -Seconds 1
    $writer.WriteLine("操作命令2")
    Start-Sleep -Seconds 1

    # 输入目标数字并回车
    $writer.WriteLine("目标数字")

    # 可选:读取并输出服务器返回的结果
    while ($stream.DataAvailable) {
        Write-Host $reader.ReadLine()
    }

    # 关闭连接
    $reader.Close()
    $writer.Close()
    $telnet.Close()
}
else {
    Write-Host "无法连接到Telnet服务器"
}

注意事项:

  • 替换占位符为实际的账号、密码、命令和目标数字
  • 根据服务器实际的登录提示文本,修改-match后的字符串,比固定等待时间更可靠
  • 右键选择"使用PowerShell运行"即可执行脚本

内容的提问来源于stack exchange,提问作者Rob Johnston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 00:40:17