BAT之基于端口结束进程
1、查看端口对应PID命令为 #8080端口举例
netstat -ano | findstr "8080"
2、结束进程命令为
taskkill /?
/S system 指定要连接的远程系统。 /U [domain]user 指定应该在哪个用户上下文执行这个命令。 /P [password] 为提供的用户上下文指定密码。如果忽略,提示 输入。 /FI filter 应用筛选器以选择一组任务。 允许使用 "*"。例如,映像名称 eq acme* /PID processid 指定要终止的进程的 PID。 使用 TaskList 取得 PID。 /IM imagename 指定要终止的进程的映像名称。通配符 *可用来 指定所有任务或映像名称。 /T 终止指定的进程和由它启用的子进程。 /F 指定强制终止进程。 /? 显示帮助消息。
taskkill支持#1,那么编写的bat文件只要支持#2的方式就行了,既然通过port结束进程,就必须得到port号。 基于CMD的for命令对字符串剪切参数tokens,得如下命令
for /f "tokens=5" %%a in (netstat -ano ^| findstr "8080") do echo %%a
得到a的值就是单纯的port对应的PID,基于此方法,将echo命令修改为taskkill命令,即可完成通过端口结束进程的操作,如下:
for /f "tokens=5" %%a in (netstat -ano ^| findstr "8080") do taskkill /pid %%a -t -f pasue :pause可删除,保留可以查看具体执行结果,建议保留或使用“>”将结果保留。
提示:直接使用CMD窗口执行命令出现无法使用的情况,需要将^,%等字符删除再使用,此为CMD和BAT的区别,是正常现象。