bat关闭端口的占用进程脚本

在开发Springboot过程中,IDEA闪退后,端口仍然占用,

若修改项目的端口号,有时候需要修改好几个地方,比较麻烦,可以用这个脚本,关闭某个端口

我还自己添加了一些其他方法

如果没有效果,请用<管理员权限>启动:

@echo off &TITLE ZheXin
::颜色
color 02
:: 设置编码为UTF-8  
chcp 65001 >nul 2>&1 


::两种方法开启管理员,如果第二个没开成功还能用第一个
Net session >nul 2>&1 || mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0","","runas",1)(window.close)&&exit
::%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
::判断管理员权限
Rd "%WinDir%\system32\test_permissions" >NUL 2>NUL
Md "%WinDir%\System32\test_permissions" 2>NUL||(
::不是管理员
echo 自动开启管理员权限失败,请手动开启。。。
)
Rd "%WinDir%\System32\test_permissions" 2>NUL
::开始
set port=
:start
echo %date%  %time%
echo 目录:.
echo 1、输入 ` 0 ` 为查询所有端口.
echo 2、输入 ` ip ` 为查询所有IP.
echo 3、输入 ` cxdk ` 为查询某端口的占用进程.
echo 4、输入 ` gbjc  ` 为关闭某端口.
echo 5、输入 ` 1~65535 ` 为关闭某个端口.
echo 6、输入 ` qp ` 为清除屏幕内容.
echo ^-
echo ^-
set /P port="请输入内容:"
echo ^-
echo ^-
set num=%port%
if "%num%"=="" (
    echo 不能为空,请重新输入。并且, 端口必须在1-65535之间,请重新输入。
    echo ^-
	echo ^-
	goto start
	break
)
if "%num%"=="cxdk" (
goto cxdk
break
)
if "%num%"=="gbjc" (
goto gbjc
break
)
if "%num%" == "ip" (
    echo 当前所有IP地址如下:。
	ipconfig
    echo ^-
	echo ^-
	goto start
	break
)
if "%num%" == "qp" (
    cls
	goto start
	break
)
if "%num%" == "0" (
    echo 当前所有端口如下:。
	netstat -ano
    echo ^-
	echo ^-
	goto start
	break
)
REM 检查数字是否在1-65535之间
if %num% LSS 1 (
    echo 2端口必须在1-65535之间,请重新输入。
    echo ^-
    echo ^-
    goto start
	break
)
if %num% GTR 65535 (
    echo 3端口必须在1-65535之间,请重新输入。
    echo ^-
	echo ^-
	goto start
	break
)
echo 开始搜索'netstat -ano^|findstr ":%port%" '


for /f "delims=" %%i in ( 'netstat -ano^|findstr  %port%' ) do set pid=%%i 
set id=%pid:~-8%
echo ^-
echo ^-
echo 使用端口%port%的进程pid:%id%;开始结束它
echo ^-
echo ^-
taskkill /F /PID  %id% 
:gb
if %errorlevel%==0 (
echo ^-
echo ^-
echo ^=============================关闭端口:%port% - 成功,进程: %id% ==============================
echo ^-
echo ^-
goto start
break
) else (
echo ^-
echo ^-
echo ^==============关闭端口:%port% - 失败,进程并未启动  %id% 或是关键进程无法关闭==================
echo ^-
echo ^-
goto start
break
)

:cxdk
set /P port="(结果-100为没查到,最后几位是进程)  请输入端口:"	
echo ^-
echo ^-
for /f "delims=" %%i in ( 'netstat -ano^|findstr :%port%' ) do set pid=%%i 
set id=%pid:~-100%
echo %id%;
echo ^-
echo ^-
goto start
break
:gbjc
set /P  port="请输入要关闭的进程id:"
echo ^-
echo ^-
taskkill /F /pid %port% -t
goto gb
break

效果如下:::

posted @ 2023-11-26 15:59  哲_心  阅读(362)  评论(0)    收藏  举报