开发调试,起服务的时候,经常会碰到端口被占用的情况,导致服务无法启动。除了自动更换另外的端口外,还有一种方式就是找到端口占用的程序然后杀掉进程。每次打开cmd命令行输入命令觉得太麻烦,于是写了个bat脚本,直接点击执行就可以杀掉端口占用的进程了
windows 系统内,新建一个文本文档另存为killByPort.bat
文件,编码格式请选择ANSI
编码(中文乱码)。复制下面的代码,粘贴到bat文件中,保存文件。双击执行即可。
嫌麻烦的直接下载文件,即可,帮忙点个关注谢谢 ^ _ ^(bat文件下载,需要关注)
- 输入端口
- 查询出端口占用程序,选择终止或者查看所有程序
- 输入
- 终止程序
- 输入2, 查看所有进程(想换其他接口的情况下,列出所有端口后,可以重新选择输入)
@Echo Off
:: created by citrus
title=杀掉指定接口进程
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
call :ColorText 09 "POWER BY CITRUS"
echo.
goto cmdmain
:cmdmain
set /p port=请输入指定端口:
if "%port%" == "" (
echo.
call :ColorText 0c "无效端口"
echo.
echo.
goto cmdchoice
)
for /f "tokens=5" %%a in ('netstat /ano ^| findstr %port%') do ( set PidList=%%a)
if "%PidList%" == "" (
echo.
call :ColorText 0c "进程不存在"
echo.
echo.
goto cmdchoice
)
for /f "tokens=1" %%b in ('tasklist ^| findstr %PidList%') do ( set PName=%%b)
echo.
echo =========================
echo.
echo.
echo *端口(%port%)的PID是(%PidList%)
echo.
echo.
call :ColorText 0a " %PName%"
echo.
echo.
echo =========================
echo.
set "select="
set/p select=是否终止该进程(0: 否,退出, 1: 是,2: 查看所有进程):
if "%select%"=="0" (goto cmd3)
if "%select%"=="1" (goto cmd1)
if "%select%"=="2" (goto cmd2)
echo.
call :ColorText 0c "无效字符,即将退出"
echo.
echo.
goto cmd3
:cmdchoice
set "selectmore="
set/p selectmore=是否查看所有进程(0: 否, 退出,1: 是):
if "%selectmore%"=="0" (goto cmd3)
if "%selectmore%"=="1" (goto cmd2)
echo.
call :ColorText 0c "无效字符,即将退出"
echo.
echo.
goto cmd3
:cmd1
echo 终止进程中...
taskkill /f /pid %PidList%
echo 进程已终止
PAUSE >null
:cmd2
netstat /ano
goto cmdmain
:cmd3
pause
exit
:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof