找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18833|回复: 5

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

[复制链接]
发表于 2021-10-29 17:03:01 | 显示全部楼层 |阅读模式
当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. )
复制代码
发表于 2021-10-29 18:54:12 | 显示全部楼层
用call命令,call命令会在执行完毕调用的命令后返回到程序位置继续执行。
 楼主| 发表于 2021-10-29 19:52:47 | 显示全部楼层
回复 2# lancer


    不灵, 执行到hexo s时, 就不动了
发表于 2021-10-30 09:07:45 | 显示全部楼层
回复 3# 5i365


    这个命令是干啥的,dos中不带这个命令吧,你单独执行此命令,看结果是什么
 楼主| 发表于 2021-10-30 10:16:41 | 显示全部楼层
回复 4# lancer


    改了一下问题, 就差一行代码了
发表于 2021-10-30 14:31:58 | 显示全部楼层
  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技术 +1 收起 理由
5i365 + 1 多谢, 牛X

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 03:30 , Processed in 0.032706 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表