当前位置: 首页 > cmd>阅读正文

windows强制关闭端口脚本

2022.7.18 朱丰华 1533 次 留下评论 1607字

简化版本 bat (注意ANSI编码) :

@setlocal enabledelayedexpansion
@echo off
cls
color 0a
TITLE killPort Power By zhufenghua

:main

set /p port=请输入端口号(默认9200):

if "%port%"==""  (set port=9200)

echo.
echo 预关闭端口为:%port% 的进程
echo.

set iskill=0

for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (

    if %%m NEQ 0 (
	 if !iskill! EQU 0 (
		taskkill /f /pid %%m
        		set iskill=1
    	)
    )
)
if %iskill% EQU 0 (
	echo 提示:该端口没有找到正在运行的程序。
)
	echo.
	goto main

多功能版本,编写bat代码如下:(注意ANSI编码)

@setlocal enabledelayedexpansion
@echo off
cls
color 0a

TITLE KillPort Power By zhufenghua

:main
ECHO. ********************************************************************
ECHO. * *
ECHO. * *  1.全部端口列表
ECHO. * *  2.查询端口信息
ECHO. * *  3.查询端口进程
ECHO. * *  4.解除端口占用
ECHO. * *
ECHO. ********************************************************************
	echo.
set /p X=输入数字选择功能:

if %X%==1 (
	goto findAllPort
)else if %x%==2 (
goto mPort
)else if %x%==3 (
goto findPid
)else if %x%==4 (
goto killPort
)

:findAllPort
cls
	echo.	
	netstat -aon
	echo.
	goto main
	
:mPort
cls
    set /p mport=请输入要查找的端口:
	echo.	
	echo   协议   本地地址          	外部地址        	状态           PID
	netstat -aon|findstr %mport%
	echo.
	goto main

:findPid
cls
set /p port=请输入要查询的端口号(默认9200):

if "%port%"==""  (set port=9200)

echo.
echo 查找端口为:%port% 的进程:
echo.

set isExist=0

for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (

    if %%m NEQ 0 (
	 if !isExist! EQU 0 (
		set isExist=1
		echo 映像名称                       PID 会话名              会话#       内存使用
		echo.
		echo ========================= ======== ================ =========== ============
		tasklist | findstr "%%m"
    	)
    )
)
if %isExist% EQU 0 (
	echo 提示:该端口没有找到正在运行的程序。
)
	echo.
	goto main
	
:killPort
cls
set /p port=请输入要杀死的端口号(默认9200):

if "%port%"==""  (set port=9200)

echo.
echo 预关闭端口为:%port% 的进程
echo.

set iskill=0

for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (

    if %%m NEQ 0 (
	 if !iskill! EQU 0 (
		taskkill /f /pid %%m
        		set iskill=1
    	)
    )
)
if %iskill% EQU 0 (
	echo 提示:该端口没有找到正在运行的程序。
)

	echo.
	goto main

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注