自动解决Windows端口占用

用于解决Windows端口占用的批处理脚本,自动查找指定端口号对应的进程并结束该进程。

使用方法:右键新建一个文本文档.txt,将以下代码复制粘贴到文本并保存,然后把.txt改成.bat,双击运行并输入需要结束的端口号

@echo off
chcp 65001 > nul

set /p port=请输入要查找并结束进程的端口号: 
set "found=0"

for /f "tokens=5" %%a in ('netstat -ano ^| findstr %port%') do (
    set "found=1"
    echo 发现端口号为 %port% 的进程,PID%%a,正在结束...
    taskkill /F /PID %%a
)

if %found% EQU 0 (
    echo 没有发现端口号为 %port% 的进程。
) else (
    echo 结束进程操作完成。
)

pause

代码解析

@echo off: 这行命令用于关闭命令提示符窗口中的命令回显功能,这样在执行脚本时不会显示每条命令的执行结果。

chcp 65001 > nul: 这行命令设置命令提示符窗口的字符编码为 UTF-8,避免出现乱码,并将输出重定向到 nul,即不显示输出内容。

set /p port=请输入要查找并结束进程的端口号:: 这行命令用于接收用户输入的端口号。

set "found=0": 初始化一个变量 found,用于标记是否找到指定端口对应的进程,初始值为 0。

for /f "tokens=5" %%a in ('netstat -ano ^| findstr %port%') do (...): 这是一个 for 循环,用于遍历通过 netstat 命令查找到的与指定端口相关的进程信息。tokens=5 表示将每行输出按空格分割后的第 5 个部分赋值给变量 %%a

set "found=1": 在找到匹配的进程后,将 found 的值设为 1。

echo 发现端口号为 %port% 的进程,PID 为 %%a,正在结束...: 显示找到的进程信息和对应的 PID。

taskkill /F /PID %%a: 使用 taskkill 命令结束指定 PID 的进程。

if %found% EQU 0 (...) else (...): 根据 found 的值来判断是否找到了指定端口对应的进程,然后输出相应的信息。

pause: 脚本执行完毕后暂停,等待用户按任意键继续。

执行效果

  1. 没有指定的端口号进程的情况
    在这里插入图片描述

  2. 有对应的端口号进程的情况
    在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值