代码如下
@echo off
set port=8081
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /f /pid %%m
命令解读
%port%:引用变量port的值
这里我们设置的是8081端口,所以他会查询所有8081端口的进程。
tokens:参数赋值
例如:参数图
tokens =1 代表提取第一列
返回:
TCP
TCP
tokens = 1,2代表提取 第一列和第二列
tokens = 1-5 则代表提取第1列到第5列
这里要提到一点就是,tonkens参数后面跟的[%%i]
通常来说%%[]则代表对该对象的引用,但是在这里 in 前面的 %%i,这是隐式声明了 %%j、%%k,%%l、%%m,tokens=最多可以指定26个输出变量,这里我提取了五列,所以它自动声明了5个变量,根据字母排序分别对应参图图中的1、2、3、4、5。
当然你也可以定义%%a,那么你就可以用 %%b、%%c、%%d、%%e去接收参数
从定义的字母开始按照字母排序表则可以选区对应字母接收参数
其他小命令
each:输出语句以及变量
each 我这次的参数是 %%i
阻止批处理运行完自动关闭
@pause
注释:以上只是一些个人理解,可能用词或者表达上面不够准确,但是还是具有实际价值的。