cmd批处理bat命令根据端口号一键关闭杀死对应进程程序

Posted xutaocc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmd批处理bat命令根据端口号一键关闭杀死对应进程程序相关的知识,希望对你有一定的参考价值。

@(cmd批处理bat命令根据端口号一键关闭杀死对应进程程序)

cmd批处理bat命令根据端口号一键关闭杀死对应进程程序

使用场景和功能介绍

  • java开发者eclipse中启动多次启动tomcat时8080端口无法及时关闭可能需要此批处理。
  • windows上打开nginx.exe调试时不容易关闭时,可以使用此批处理关闭80端口即可。
  • 代码原理根据端口号netstat -aon | findstr "80"查到对应PID,再根据PID查找到进程名tasklist|findstr PID,再根据程序名杀死进程taskkill /f /t /im nginx.exe。这样杀死比较全,只根据PID杀死进程有时候并不能完全杀死相关进程故心血来潮写了此批处理。
  • 刚学批处理蹩脚的代码还请包含。

主界面

技术图片

下载地址

下载地址(蓝奏云)]
https://www.lanzous.com/i6syl8h

源代码


@echo off
title 根据服务端口号关闭对应进程。作者:劣徒5520,QQ:1092413979 
echo  ━━━━━━━━━━━━
echo     ┏┓   ┏┓
echo    ┏┛┻━━━┛┻┓
echo    ┃       ┃
echo    ┃   ━   ┃
echo    ┃ ┳┛ ┗┳ ┃
echo    ┃       ┃
echo    ┃   ┻   ┃
echo    ┃       ┃ 
echo    ┗━┓   ┏━┛
echo      ┃   ┃ ***根据服务端口号关闭对应进程。作者:劣徒5520,QQ:1092413979 ***
echo      ┃   ┃
echo      ┃   ┗━━━┓
echo      ┃       ┣┓
echo      ┃       ┏┛
echo      ┗┓┓┏━┳┓┏┛
echo       ┃┫┫ ┃┫┫
echo       ┗┻┛ ┗┻┛
echo  ━━━━━━━━━━━━
:start1
set /p duankou=请输入需要关闭的端口号:
setlocal enabledelayedexpansion
set queryResult=0
for /f "delims=  tokens=1" %%a in ('netstat -aon ^| findstr "%duankou%" ^|findstr "LISTENING"') do (
    set a1=%%a

    set isCanUse=0
    for /f "tokens=2 delims= " %%b in ("!a1!") do (
        set a2=%%b
        for /f "tokens=2 delims=:" %%c in ("!a2!") do (
            set a3=%%c
            
            if %duankou%==!a3! (
                
                set isCanUse=1
            
            
            )

        )
        if !isCanUse!==1 (
        
            echo 查询到匹配的进程信息--!a1!
            set queryResult=1

            for /f "tokens=5 delims= " %%d in ("!a1!") do (
                set killPid=%%d
                for /f "tokens=1 delims= " %%e in ('tasklist^|findstr  !killPid!') do (
                    set /p isConfirm=确认关闭%%e进程吗^?^(不了解的进程请不要乱关闭^)^(Y^/N^): 
                    set alreadyKilled=0
                    if !isConfirm!==y (
                        taskkill /f /t /im  %%e
                        set alreadyKilled=1
                    )
                    if !isConfirm!==Y (
                        taskkill /f /t /im  %%e
                        set alreadyKilled=1
                    )
                    if !alreadyKilled!==0 (
                        if !isConfirm! NEQ Y (
                            echo 已取消
                            set duankou=0
                            goto start1
                        )
                        if !isConfirm! NEQ Y (
                            echo 已取消
                            goto start1
                            set duankou=0
                        )
                    )
                )
            )
        )
    )
)
if !queryResult!==0 (
        echo 未找到对应进程
    )
goto start1
pause

以上是关于cmd批处理bat命令根据端口号一键关闭杀死对应进程程序的主要内容,如果未能解决你的问题,请参考以下文章

端口号占用 使用命查看端口号 和杀死进程

linux下怎么根据端口号杀死进程?

linux下怎么根据端口号杀死进程

windows查看端口号占用,查看/杀死占用端口号的程序

window7 已知 端口号   杀死改端口号占用的进程

Windows中杀死某个端口的进程