之前有发过一篇用cmd找出占用端口程序并结束占用端口程序的日志:CMD便捷找到占用端口的程序。
但是,指令毕竟不如直接交互的程序来的简易。转了一个bat保存下来。 流程挺简单,就不多解释了。可以考虑再写一个vbe版本的玩。
@ECHO OFF && CLS
TITLE Port Tools. Ver 1.0
:InputPortA
CLS
SET "port="
SET /P port=输入想要查看的端口号(0-65535):
IF NOT DEFINED port GOTO InputPortA
FOR /F "tokens=* delims=0123456789" %%a IN ("%port%") DO IF "%%a" NEQ "" GOTO InputPortA
IF %port% GTR 65535 GOTO InputPortA
CLS
ECHO 当前活动连接
ECHO 协议 本地地址:端口 外部地址:端口 状态 PID
netstat -ano | findstr "%port%"
GOTO Info
:Info
SET /P msgstr=继续查看端口使用情况/结束占用端口的进程(v/c):
IF /I "%msgstr%"=="v" GOTO InputPortA
IF /I "%msgstr%"=="c" (GOTO InputPID) ELSE (GOTO Info)
:InputPID
SET "pid="
SET /P pid=输入想要结束的PID(0-65535):
IF NOT DEFINED pid GOTO InputPID
FOR /F "tokens=* delims=0123456789" %%a IN ("%pid%") DO IF "%%a" NEQ "" GOTO InputPID
IF %port% GTR 65535 GOTO InputPID
CLS
ECHO 进程名称 PID 进程名称 会话号码 内存使用
ECHO ========================= ======== ================ =========== ============
tasklist | findstr "%pid%"
SET "cho="
SET /P cho=是否结束该进程(y/n):
IF /I "%cho%"=="y" GOTO CloseUse
IF /I "%cho%"=="n" (GOTO InputPortA) ELSE (GOTO InputPID)
:CloseUse
taskkill /PID "%pid%" /T
GOTO InputPortA
[download id=“84”]
再贴一个批处理中的换行处理脚本。
引用:出处
[download id=“85”]