win项目启动端口被占用解决办法
杀掉8212端口号
```
netstat -ano | findstr :8212
tasklist | findstr 26428
taskkill /F /PID 26428
```

推荐个windows的bat执行脚本,保存成.bat就行,管理员运行,代码如下
@echo off
:: 设置代码页为 UTF-8(65001)
chcp 65001 >nul
setlocal enabledelayedexpansion
:: 检查是否以管理员身份运行
net session >nul 2>&1
if errorlevel 1 (
echo 错误:请以管理员身份运行此脚本。
pause
exit /b
)
:INPUT_LOOP
:: 提示用户输入端口号
echo.
echo 请在下方输入要查询的端口号(必须为数字),然后按回车键继续...
set /p port=端口号:
:: 检查是否输入了端口号
if "%port%"=="" (
echo 错误:未输入端口号!
goto INPUT_LOOP
)
:: 校验输入是否为数字
set "is_number=true"
for /f "delims=0123456789" %%i in ("%port%") do (
set "is_number=false"
)
if "%is_number%"=="false" (
echo 错误:端口号必须为数字,请重新输入!
goto INPUT_LOOP
)
:: 检查端口号范围(可选)
if %port% lss 1 (
echo 错误:端口号不能小于 1,请重新输入!
goto INPUT_LOOP
)
if %port% gtr 65535 (
echo 错误:端口号不能大于 65535,请重新输入!
goto INPUT_LOOP
)
:: 使用 netstat 查询端口占用情况
set found_pid=false
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :%port%') do (
set pid=%%a
set found_pid=true
)
if not !found_pid!==true (
echo 未找到端口 %port% 的占用信息。
pause
exit /b
)
tasklist /FI "PID eq %pid%"
:: 使用 tasklist 查询进程名称、用户名和内存占用
set process_name=
set user_name=
for /f "usebackq tokens=1,2,5 delims=," %%b in (`tasklist /FI "PID eq %pid%" /FO CSV /NH 2^>nul`) do (
:: 去除多余的引号和空格
set raw_user_name=%%~c
set user_name=!raw_user_name:"=!
)
echo.
:: 判断进程类型
if "!user_name!"=="" (
echo 无法判断进程类型。
) else (
echo !user_name! | findstr /i "SYSTEM LocalService NetworkService" >nul
if errorlevel 1 (
echo 该进程为用户进程。
) else (
echo 警告:该进程为系统进程!可能需要管理员权限才能终止。
)
)
echo.
:: 提示用户是否杀死进程,并明确等待用户输入
:KILL_CHOICE_LOOP
set /p kill_choice=是否杀死占用端口 %port% 的进程 [Y/N]?
echo.
:: 校验用户输入
if /i "%kill_choice%"=="Y" (
echo 正在尝试杀死进程 PID %pid%...
taskkill /PID %pid% /F
if errorlevel 1 (
echo 杀死进程失败,请检查权限或进程是否已退出。
) else (
echo 进程 PID %pid% 已成功杀死。
)
) else if /i "%kill_choice%"=="N" (
echo 不杀死进程,操作已取消。
) else (
echo 输入无效,请输入 Y 或 N。
goto KILL_CHOICE_LOOP
)
echo.
:: 暂停,等待用户按键退出
pause

浙公网安备 33010602011771号