【bat】【windows】通过端口杀死进程
2021-01-30 04:13
标签:class 第一个 for循环 结果 ack 指定 netstat use div 简单的bat处理,把指定端口集合杀死相应的进程,就是杀死对应的pid 运行结果 1、一个端口都没有被占用情况 2、有一个6001端口被占用情况 讲解 bat是没有数组的, 可以看做事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“】:6001这一行数据,这行数据第5列【"tokens=5"】就是pid 杀死pid【taskkill /f /pid !pid!】 【bat】【windows】通过端口杀死进程 标签:class 第一个 for循环 结果 ack 指定 netstat use div 原文地址:https://www.cnblogs.com/xiaostudy/p/11674053.html@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
set obj[0]=6340
set obj[1]=6330
set obj[2]=1010
set obj[3]=6301
set obj[4]=6001
文章标题:【bat】【windows】通过端口杀死进程
文章链接:http://soscw.com/index.php/essay/48978.html