windows 根据端口号关闭进程脚本

windows 根据端口号关闭进程脚本

bash 复制代码
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
title 端口进程管理工具

:main
cls
echo 端口进程管理工具
echo ========================
echo 1. 批量关闭端口进程
echo 2. 列出所有占用端口的进程
echo 3. 退出
echo.
set /p choice=请选择操作(1-3):

if "%choice%"=="1" goto batch_close
if "%choice%"=="2" goto list_ports
if "%choice%"=="3" exit /b
echo 无效选择,请重新输入
timeout /t 2 >nul
goto main

:batch_close
echo.
:retry_ports
set ports=
set /p "ports=请输入端口号(多个端口用空格/逗号分隔,输入q返回主菜单):"
if /i "%ports%"=="q" goto main

REM 替换分隔符为统一空格格式
set "ports=%ports:,= %"
set "ports=%ports%;= %"
set "ports=%ports% "

REM 初始化结果变量
set processed=0
set closed=0

REM 循环处理每个端口
for %%p in (%ports%) do (
    set port=%%p
    REM 去除端口号两端的空格
    set "port=!port: =!"
    if not "!port!"=="" (
        set /a processed+=1
        
        REM 初始化该端口下的PID集合
        set pid_list=
        
        REM 查找占用该端口的所有PID(去重)
        for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":!port! "') do (
            set pid=%%a
            REM 检查PID是否已记录(避免重复)
            if "!pid_list!"=="" (
                set pid_list=!pid!
            ) else (
                echo !pid_list! | findstr /C:"!pid!" >nul || set pid_list=!pid_list! !pid!
            )
        )
        
        REM 处理去重后的PID集合
        if "!pid_list!"=="" (
            echo [端口 !port!] 无占用进程
        ) else (
            for %%i in (!pid_list!) do (
                echo [端口 !port!] 发现进程 PID: %%i
                taskkill /PID %%i /F >nul 2>&1
                if !errorlevel! equ 0 (
                    echo   [成功] 进程 %%i 已终止
                    set /a closed+=1
                ) else (
                    echo   [失败] 无法终止进程 %%i(可能权限不足)
                )
            )
        )
    )
)

echo.
if !processed! gtr 0 (
    echo 批量操作完成:共处理 !processed! 个端口,终止 !closed! 个进程
) else (
    echo 未输入有效端口号
)

timeout /t 3 >nul
goto retry_ports

:list_ports
echo.
echo 正在扫描活动端口...
netstat -ano | findstr /R ":[0-9]* " | findstr /V "\[::\]" 
echo.
echo 提示:冒号后数字即为端口号(例如 :8080)
pause >nul
goto main
相关推荐
YCOSA20258 小时前
雨晨 Windows 10 企业版 LTSC x64 中度精简 1809 迎双节 17763.9257 特别版
windows
sukalot8 小时前
windows 驱动实例分析系列: HidHide 驱动分析 - drivers 篇(四)
windows·驱动开发
ι:13 小时前
NUC12 Pro 安装 Ubuntu 24.04 LTS 详细教程
linux·windows·ubuntu·nuc
YCOSA202514 小时前
微软宣布将于10月7日举行Windows与Surface发布会,聚焦“Windows、NVIDIA RTX Spark、Surface,以及更广泛PC生态”
windows
Source.Liu14 小时前
【A11】 labelprinter(Tauri 版)新建步骤
windows·rust
Punchline27815 小时前
解决 Windows 环境变量 Path 设置时提示“字符太长”的完整指南
windows·环境变量·path
chushiyunen16 小时前
claude code笔记(二)、claude桌面端(内网不好用)
windows
d_benhua16 小时前
以太网测试步骤
windows
冯一川17 小时前
DeepSeek在Windows系统上部署
windows·python
解道Jdon18 小时前
JDK 27发布:紧凑对象头、G1默认、量子安全TLS
ide·windows·git·svn·eclipse·github·visual studio