[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 怎样批处理判断某端口的状态?

我想用批处理判断某端口的状态,具体说是这样,首先我通过netstat -an可以行到当前网络连接表,例如这里
  1. C:\Documents and Settings\Administrator>netstat -an
  2. Active Connections
  3.   Proto  Local Address          Foreign Address        State
  4.   TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  5.   TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  6.   TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
  7.   TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
  8.   TCP    10.104.150.74:139      0.0.0.0:0              LISTENING
  9.   TCP    10.104.150.74:1776     174.36.30.67:443       CLOSE_WAIT
  10.   TCP    10.104.150.74:1778     75.101.149.195:443     CLOSE_WAIT
  11.   TCP    10.104.150.74:1780     208.43.202.2:80        ESTABLISHED
  12.   TCP    10.104.150.74:1782     174.36.30.66:443       CLOSE_WAIT
  13.   TCP    10.104.150.74:1924     174.36.30.66:443       ESTABLISHED
  14.   TCP    10.104.150.74:1925     75.101.139.43:443      ESTABLISHED
复制代码


我想判断远程端口443的几个状态是否有ESTABLISHED的,如果有就循环判断,直到没有ESTABLISHED为止,我大概知道是用findstr和if来处理,但具体怎样写不会了,有大大可以指导下吗?

经过面论坛一番爬贴,终于自行解决了,参考代码如下:

:isExist
for /f "tokens=3 delims=:" %%i in ('netstat -an^|find ":443"') do (
echo "%%i"^|findstr /i "ESTABLISHED"
if %ERRORLEVEL% EQU 0 goto isExist
)
2

评分人数

TOP

鼓励楼主的学习精神!
代码中有一处BUG,在代码头部加SetLocal enabledelayedexpansion 并把%errorlevel% 改为!errorlevel!,至于原因请参考以下:
批处理变量延迟扩展
心绪平和,眼藏静谧。

TOP

返回列表