cmd批處理bat命令根據端口號一鍵關閉殺死對應進程程序


@

cmd批處理bat命令根據端口號一鍵關閉殺死對應進程程序

使用場景和功能介紹

  • java開發者eclipse中啟動多次啟動tomcat時8080端口無法及時關閉可能需要此批處理。
  • windows上打開nginx.exe調試時不容易關閉時,可以使用此批處理關閉80端口即可。
  • 代碼原理根據端口號netstat -aon | findstr "80"查到對應PID,再根據PID查找到進程名tasklist|findstr PID,再根據程序名殺死進程taskkill /f /t /im nginx.exe。這樣殺死比較全,只根據PID殺死進程有時候並不能完全殺死相關進程故心血來潮寫了此批處理。
  • 剛學批處理蹩腳的代碼還請包含。

主界面

在這里插入圖片描述

下載地址

下載地址(藍奏雲)]
https://www.lanzous.com/i6syl8h

源代碼


@echo off
title 根據服務端口號關閉對應進程。作者:劣徒5520,QQ:1092413979 
echo  ━━━━━━━━━━━━
echo     ┏┓   ┏┓
echo    ┏┛┻━━━┛┻┓
echo    ┃       ┃
echo    ┃   ━   ┃
echo    ┃ ┳┛ ┗┳ ┃
echo    ┃       ┃
echo    ┃   ┻   ┃
echo    ┃       ┃ 
echo    ┗━┓   ┏━┛
echo      ┃   ┃	***根據服務端口號關閉對應進程。作者:劣徒5520,QQ:1092413979 ***
echo      ┃   ┃
echo      ┃   ┗━━━┓
echo      ┃       ┣┓
echo      ┃       ┏┛
echo      ┗┓┓┏━┳┓┏┛
echo       ┃┫┫ ┃┫┫
echo       ┗┻┛ ┗┻┛
echo  ━━━━━━━━━━━━
:start1
set /p duankou=請輸入需要關閉的端口號:
setlocal enabledelayedexpansion
set queryResult=0
for /f "delims=  tokens=1" %%a in ('netstat -aon ^| findstr "%duankou%" ^|findstr "LISTENING"') do (
	set a1=%%a

	set isCanUse=0
	for /f "tokens=2 delims= " %%b in ("!a1!") do (
		set a2=%%b
		for /f "tokens=2 delims=:" %%c in ("!a2!") do (
			set a3=%%c
			
			if %duankou%==!a3! (
				
				set isCanUse=1
			
			
			)

		)
		if !isCanUse!==1 (
		
			echo 查詢到匹配的進程信息--!a1!
			set queryResult=1

			for /f "tokens=5 delims= " %%d in ("!a1!") do (
				set killPid=%%d
				for /f "tokens=1 delims= " %%e in ('tasklist^|findstr  !killPid!') do (
					set /p isConfirm=確認關閉%%e進程嗎^?^(不了解的進程請不要亂關閉^)^(Y^/N^): 
					set alreadyKilled=0
					if !isConfirm!==y (
						taskkill /f /t /im  %%e
						set alreadyKilled=1
					)
					if !isConfirm!==Y (
						taskkill /f /t /im  %%e
						set alreadyKilled=1
					)
					if !alreadyKilled!==0 (
						if !isConfirm! NEQ Y (
							echo 已取消
							set duankou=0
							goto start1
						)
						if !isConfirm! NEQ Y (
							echo 已取消
							goto start1
							set duankou=0
						)
					)
				)
			)
		)
	)
)
if !queryResult!==0 (
		echo 未找到對應進程
	)
goto start1
pause


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM