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

[系统相关] 请教批处理, 当某端口被占用时, 启动记事本

当8010端口被占用时, 启动记事本
下面的代码, 有一部分不会写, 请求高手支招, 提前感谢
-------------------------------------------------------------
8010端口没占用时,有两种情况, 一种是显示为空,取不到值,另一种情况是显示类似下面的信息, 最后那列为0, 不包含 LISTENING 单词
C:\Users\Administrator>netstat -aon|findstr "8010"
  TCP    [::1]:50055            [::1]:8010             TIME_WAIT       0
  TCP    [::1]:50056            [::1]:8010             TIME_WAIT       0
  TCP    [::1]:50058            [::1]:8010             TIME_WAIT       0
  TCP    [::1]:50059            [::1]:8010             TIME_WAIT       0
  TCP    [::1]:50060            [::1]:8010             TIME_WAIT       0
  TCP    [::1]:50061            [::1]:8010             TIME_WAIT       0
-----------------------------------------------------------------------------------------
8010端口被占用时,显示下面的信息, 最后那列有非0的值, 包含 LISTENING 单词
C:\Users\Administrator>netstat -aon|findstr "8010"
  TCP    0.0.0.0:8010           0.0.0.0:0              LISTENING       7268
  TCP    [::]:8010              [::]:0                 LISTENING       7268
  TCP    [::1]:8010             [::1]:50156            FIN_WAIT_2      7268
  TCP    [::1]:8010             [::1]:50157            FIN_WAIT_2      7268
  TCP    [::1]:8010             [::1]:50159            ESTABLISHED     7268
  TCP    [::1]:8010             [::1]:50160            ESTABLISHED     7268
  TCP    [::1]:8010             [::1]:50161            ESTABLISHED     7268
  TCP    [::1]:8010             [::1]:50162            ESTABLISHED     7268
  TCP    [::1]:50156            [::1]:8010             CLOSE_WAIT      8932
  TCP    [::1]:50157            [::1]:8010             CLOSE_WAIT      8932
  TCP    [::1]:50159            [::1]:8010             ESTABLISHED     8932
  TCP    [::1]:50160            [::1]:8010             ESTABLISHED     8932
  TCP    [::1]:50161            [::1]:8010             ESTABLISHED     8932
  TCP    [::1]:50162            [::1]:8010             ESTABLISHED     8932
  1. @echo off
  2. set status=false
  3. :checkstatus
  4. for /f "delims=" %%i in ('netstat -aon^|findstr "8010"') do (
  5. if "%%i" 包含LISTENING单词 (set status=true)
  6. )
  7. if "%status%"=="true" (
  8. start notepad
  9. ) else (
  10. ping -n 5 127.0.0.1>nul
  11. goto :checkstatus
  12.   
  13. )
复制代码

用call命令,call命令会在执行完毕调用的命令后返回到程序位置继续执行。

TOP

回复 2# lancer


    不灵, 执行到hexo s时, 就不动了

TOP

回复 3# 5i365


    这个命令是干啥的,dos中不带这个命令吧,你单独执行此命令,看结果是什么

TOP

回复 4# lancer


    改了一下问题, 就差一行代码了

TOP

  1. @echo off
  2. set status=false
  3. :checkstatus
  4. for /f "tokens=4 delims= " %%i in ('netstat -aon^|findstr "8010"') do (
  5. if "%%i"=="LISTENING" (set status=true)
  6. )
  7. if "%status%"=="true" (
  8. start notepad
  9. ) else (
  10. ping -n 5 127.0.0.1>nul
  11. goto :checkstatus
  12.   
  13. )
复制代码
1

评分人数

    • 5i365: 多谢, 牛X技术 + 1

TOP

返回列表