国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

windows 通過端口殺死進程過程解析(bat)

2020-02-03 22:08:41
字體:
來源:轉載
供稿:網友

簡單的bat處理,把指定端口集合殺死相應的進程,就是殺死對應的pid

@echo off & setlocal EnableDelayedExpansionset obj[0]=6340set obj[1]=6330set obj[2]=1010set obj[3]=6301set obj[4]=6001set port=0set pid=0for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (  set port=%%b  for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (    set pid=%%m  )  if "!pid!"=="0" (    echo 端口號【!port!】沒有占用  ) else (    echo 端口號【!port!】相關進程以殺死    taskkill /f /pid !pid!  )  set pid=0)pause

運行結果

1、一個端口都沒有被占用情況

2、有一個6001端口被占用情況

講解

bat是沒有數組的,

set obj[0]=6340set obj[1]=6330set obj[2]=1010set obj[3]=6301set obj[4]=6001

可以看做事5個變量

第一個for循環【for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (】就是從環境中拿去變量obj開頭的,有多少個就遍歷多少遍,再通過=切割【delims==就是用=切割】

tokens=1-2就是拿去第一二列,%%a就是循環的變量開始【可以不是a,也可以是i】,那么%%a就是例如obj[0],%%b就是例如6001

第二個for循環【for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (】就是從netstat -aon ^| findstr ":6001“【^是取消轉義字符|,等同于命令行netstat -aon | findstr ":6001“】這個查所有端口占用情況中發現:6001這多行數據,這行數據第5列【"tokens=5"】就是pid

殺死pid【taskkill /f /pid !pid!】

修改版【上面那個會殺死外地占用端口調用本地端口的進程,這個是只殺死本地占用的端口】

@echo off & setlocal EnableDelayedExpansiontitle 殺死端口for %%a in (6340,6330,1010,6301,6001) do (  set pid=0  for /f "tokens=2,5" %%b in ('netstat -ano ^| findstr ":%%a"') do (    set temp=%%b    for /f "usebackq delims=: tokens=1,2" %%i in (`set temp`) do (      if %%j==%%a (        taskkill /f /pid %%c        set pid=%%c        echo 端口號【%%a】相關進程以殺死      ) else (        echo 不是本機占用端口【%%a】      )    )  )  if !pid!==0 (    echo 端口號【%%a】沒有占用  ))echo 操作完成pause

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双牌县| 无棣县| 鄂伦春自治旗| 定南县| 喀喇沁旗| 诸暨市| 扬中市| 绥滨县| 滕州市| 策勒县| 马龙县| 马山县| 长泰县| 工布江达县| 广宗县| 大余县| 绍兴市| 武清区| 尼勒克县| 辽宁省| 秦皇岛市| 乌兰浩特市| 宜昌市| 读书| 勐海县| 宜良县| 宜川县| 高雄市| 吴川市| 蓬莱市| 台山市| 化州市| 南部县| 崇州市| 嘉黎县| 镶黄旗| 湾仔区| 大足县| 南安市| 昭通市| 沽源县|