任意のポート番号を指定して解放するためのWindows バッチファイル

バッチファイル

@echo off
REM === Free a specific port on Windows ===

if "%~1"=="" (
    echo 使用方法: %~nx0 [ポート番号]
    echo 例: %~nx0 8080
    goto :eof
)

set PORT=%1
echo ============================================
echo ポート %PORT% を解放中...
echo ============================================

call :KillPort %PORT%

echo 完了!
goto :eof

REM ============================================
REM Subroutine to kill processes on a port
REM ============================================
:KillPort
set TARGET_PORT=%1
echo チェック中: ポート %TARGET_PORT%...

REM IPv4/IPv6 両方の LISTENING 状態のプロセスを探す
for /f "tokens=5" %%p in ('netstat -ano ^| findstr ":%TARGET_PORT% " ^| findstr LISTENING') do (
    echo   - ポート %TARGET_PORT% を使用中のプロセス %%p を終了します...
    taskkill /PID %%p /F >nul 2>&1
    if not errorlevel 1 (
        echo   - プロセス %%p を正常に終了しました
    )
)

使い方

free-port.bat 8680

bat

Posted by eightban