windows 停止指定端口服务和程序bat脚本

前言:

  使用常见,1.当服务端口冲突。提示端口被占用时,想启动新服务,必须把之前占用端口的服务给停止掉的时候,window 下切换CMD命令窗口,去查找占用端口的程序pid,然后再用pid杀死进程,从而停止端口占用服务。

详见另一篇文章 《windows10 系统 如何查看端口被占用程序和停止占用端口程序》 ,本地和测试环境开发过程,经常出现服务没有正常停止,导致端口一直被占用的现象,每次这样,一时操作比较蛮烦,而是命令代码容易忘记

于是,做成停止端口的bat脚本。点击bat脚本,弹出命令框,输入需要停止的端口即可。

使用方法

  新建文本,将下面的代码复制到文本中,保存后,将文件名后缀改为.bat即可。

@Echo Off
:: created by tarzan LIU

SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  set "DEL=%%a"
)
call :ColorText 09 "POWER BY CITRUS"
echo.
goto cmdmain

:cmdmain
set /p port=请输入指定端口:


if  "%port%" == "" (
  echo.
  call :ColorText 0c "无效端口"
  echo.
  echo.
  goto cmdchoice		
)


for /f "tokens=5" %%a  in ('netstat /ano ^| findstr %port%') do ( set PidList=%%a)

if  "%PidList%" == "" (
  echo.
  call :ColorText 0c "进程不存在"
  echo.
  echo.
  goto cmdchoice
)

for /f "tokens=1" %%b in ('tasklist ^| findstr %PidList%') do ( set PName=%%b)

echo.
echo =========================
echo.
echo.
echo *端口(%port%)的PID是(%PidList%)
echo.
echo.
call :ColorText 0a "        %PName%"
echo.
echo.
echo =========================
echo.
set "select="

echo.
echo.是否终止该进程
echo  0: 否
echo. 1: 是
echo. 2: 查看端口使用进程和服务
set/p select=请选择:

if "%select%"=="0" (goto cmd3)
if "%select%"=="1" (goto cmd1)
if "%select%"=="2" (goto cmd2)
echo.
call :ColorText 0c "无效字符,即将退出"
echo.
echo.
goto cmd3

:cmdchoice
set "selectmore="

set/p selectmore=是否查看所有进程(0: 否, 退出,1: 是):

if "%selectmore%"=="0" (goto cmd3)
if "%selectmore%"=="1" (goto cmd2)
echo.
call :ColorText 0c "无效字符,即将退出"
echo.
echo.
goto cmd3

:cmd1
echo 终止进程中...
taskkill /f /pid %PidList%
echo 进程已终止
PAUSE >null

:cmd2
netstat -ano |findstr %port%
tasklist |findstr %PidList%
goto cmdmain

:cmd3
pause
exit

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof

如果有CMD命令窗口有中文乱码问题,编辑文本,点击文件》》另存为, 选择编码 为ANSI,保存即可。

使用效果图

相关知识

Windows的批处理脚本(也称为.bat脚本)是一种用于自动化执行一系列命令和任务的脚本语言。通过编写批处理脚本,您可以简化重复性的操作,提高工作效率。在接下来的3000字内,我将为您详细解释Windows批处理脚本的基本语法、常用命令和用法示例。

基本语法: Windows批处理脚本使用扩展名为.bat的文件进行存储和执行。以下是一个典型的批处理脚本的基本结构:

@echo off rem 批处理脚本的注释 :: 批处理脚本的注释 命令1 命令2 ... pause
  • @echo off:该行用于关闭脚本执行时的命令回显,使得在执行过程中不会显示具体的命令文本。
  • rem 或 :::用于添加注释,这些行中的内容会被解释器忽略,可以用于提供脚本的说明或备注。
  • 命令行:在注释之后,可以输入需要执行的命令,每个命令占据一行。
  • pause:该行用于暂停脚本的执行,以便查看输出结果。按下任意键后,脚本将继续执行或退出。

常用命令和用法示例:

  1. echo:用于在命令行中显示文本消息。

    echo Hello, World!
  2. set:用于设置和读取环境变量的值。

    set MY_VARIABLE=Hello echo %MY_VARIABLE%
  3. if:用于执行条件判断,根据条件结果分别执行不同的命令。

    if %ERRORLEVEL%==0 ( echo Success ) else ( echo Failure )
  4. for:用于循环处理一组数据或文件,并对每个项执行相应的操作。

    for %%G in (*.txt) do ( echo File: %%G )
  5. call:用于调用其他批处理脚本或命令,并可以传递参数。

    call other_script.bat
  6. cd:用于改变当前工作目录。

    cd C:\MyFolder
  7. del:用于删除指定的文件。

    del myfile.txt
  8. xcopy/robocopy:用于复制文件和目录。

    xcopy source destination /E /Q robocopy source destination /MIR
  9. start:用于启动一个新的窗口或程序。

    start notepad.exe

以上示例只是Windows批处理脚本中常见的一些命令和用法,实际上还有许多其他命令和技巧可供使用。您可以根据自己的需求和具体情况,进一步学习和探索批处理脚本的更多功能和用法。

总结: Windows批处理脚本是一种方便的自动化工具,可以通过编写简单的脚本来执行各种命令和任务。在批处理脚本中,您可以使用基本语法、常用命令和各种技巧来实现自定义的操作。请注意,以上解释只是对Windows批处理脚本的基础介绍,如果您有特定的问题或需求,请进一步详细了解该脚本语言的官方文档和资料。

Windows下,可以使用bat批处理脚本来批量检测远程端口。Telnet是一种远程终端连接服务,可以通过它来连接到远程主机的特定端口。以下是一个使用Telnet命令在批处理脚本中批量检测远程端口的例子: @echo off setlocal set ip_list=file_path\ip_list.txt set port=80 for /f %%i in (%ip_list%) do ( telnet %%i %port% | find "Connected" > nul if errorlevel 1 ( echo %%i:%port% is closed ) else ( echo %%i:%port% is open ) ) pause 在以上示例中,首先我们定义了要检测的IP列表文件的路径,即ip_list.txt文件,然后我们设定了要检测的端口号,此处设定为80端口。接着使用for循环读取ip_list.txt文件中的每个IP地址。 在每次循环中,我们使用telnet命令连接到远程主机的指定端口。如果端口成功连接,则表示端口是开放的,telnet命令的输出会包含"Connected"关键字。我们使用find命令查找telnet命令的输出中是否包含"Connected"关键字。 如果find命令找到了"Connected"关键字,则说明端口是开放的,我们将显示"IP地址:端口号 is open"的消息。否则,即端口未连接,我们将显示"IP地址:端口号 is closed"的消息。 最后,我们使用pause命令来暂停脚本的运行,以便我们可以查看检测结果。 需要注意的是,Telnet命令在默认情况下可能未启用,需要手动在Windows设置中启用Telnet客户端功能。此外,Telnet命令在Windows 10及更高版本中可能已被淘汰,可以考虑使用其他工具如ncat或PowerShell来代替Telnet命令进行远程端口检测。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰山AI

原创不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值