Windows通过端口号杀死相关进程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Windows通过端口号杀死相关进程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1762字,纯文字阅读大概需要3分钟。
内容图文
简单的bat处理,把指定端口集合杀死相应的进程,就是杀死对应的pid
@echo off & setlocal EnableDelayedExpansion set obj[0]=6340 set obj[1]=6330 set obj[2]=1010 set obj[3]=6301 set obj[4]=6001 set port=0 set pid=0 for /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]=6340 set obj[1]=6330 set obj[2]=1010 set obj[3]=6301 set 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 EnableDelayedExpansion title 杀死端口 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
内容总结
以上是互联网集市为您收集整理的Windows通过端口号杀死相关进程全部内容,希望文章能够帮你解决Windows通过端口号杀死相关进程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。