@ECHO OFF REM WindowsXP用 ポートを開いているプロセス表示バッチ 2004/01/24 REM Written by SHOMI REM NETSTAT用一時ファイル SET NETSTATTMP="%temp%\netstat.tmp" REM TASKLIST用一時ファイル SET TASKLISTTMP="%temp%\tasklist.tmp" REM ヘッダ表示 @ECHO Protocol Local Foreign (State) Image PID Session Session# Memory REM NETSTAT実行 NETSTAT -ano > %NETSTATTMP% REM 各プロセスIDに対応する情報取得呼び出し FOR /F "usebackq skip=4 tokens=1,2,3,4,5" %%A IN (%NETSTATTMP%) DO CALL :ListPID %%A %%B %%C %%D %%E REM NETSTAT用一時ファイル削除 DEL %NETSTATTMP% REM 終了 GOTO Exit REM 各プロセスIDに対応する情報取得 :ListPID REM NETSTAT実行結果を分解した結果は状態(ESTABLISH等)を含むか? IF NOT "%5"=="" GOTO Token5 ELSE GOTO Token4 REM NETSTAT実行結果を分解した結果は状態(ESTABLISH等)を含まない :Token4 REM TASKLIST実行 TASKLIST /FI "PID eq %4" > %TASKLISTTMP% REM NETSTAT結果とプロセス情報を連結して表示 FOR /F "usebackq skip=3 tokens=*" %%P IN (%TASKLISTTMP%) DO ECHO %1 %2 %3 %%P GOTO DelTasklistTmp REM NETSTAT実行結果を分解した結果は状態(ESTABLISH等)を含む :Token5 REM TASKLIST実行 TASKLIST /FI "PID eq %5" > %TASKLISTTMP% REM NETSTAT結果とプロセス情報を連結して表示 FOR /F "usebackq skip=3 tokens=*" %%P IN (%TASKLISTTMP%) DO ECHO %1 %2 %3 (%4) %%P GOTO DelTasklistTmp REM TASKLIST用一時ファイル削除 :DelTasklistTmp DEL %TASKLISTTMP% REM 終了 :Exit