当前位置:   article > 正文

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

暂停bat脚本

前言:

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

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

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

使用方法

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

  1. @Echo Off
  2. :: created by tarzan LIU
  3. SETLOCAL EnableDelayedExpansion
  4. for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  5. set "DEL=%%a"
  6. )
  7. call :ColorText 09 "POWER BY CITRUS"
  8. echo.
  9. goto cmdmain
  10. :cmdmain
  11. set /p port=请输入指定端口:
  12. if "%port%" == "" (
  13. echo.
  14. call :ColorText 0c "无效端口"
  15. echo.
  16. echo.
  17. goto cmdchoice
  18. )
  19. for /f "tokens=5" %%a in ('netstat /ano ^| findstr %port%') do ( set PidList=%%a)
  20. if "%PidList%" == "" (
  21. echo.
  22. call :ColorText 0c "进程不存在"
  23. echo.
  24. echo.
  25. goto cmdchoice
  26. )
  27. for /f "tokens=1" %%b in ('tasklist ^| findstr %PidList%') do ( set PName=%%b)
  28. echo.
  29. echo =========================
  30. echo.
  31. echo.
  32. echo *端口(%port%)的PID是(%PidList%)
  33. echo.
  34. echo.
  35. call :ColorText 0a " %PName%"
  36. echo.
  37. echo.
  38. echo =========================
  39. echo.
  40. set "select="
  41. echo.
  42. echo.是否终止该进程
  43. echo 0: 否
  44. echo. 1: 是
  45. echo. 2: 查看端口使用进程和服务
  46. set/p select=请选择:
  47. if "%select%"=="0" (goto cmd3)
  48. if "%select%"=="1" (goto cmd1)
  49. if "%select%"=="2" (goto cmd2)
  50. echo.
  51. call :ColorText 0c "无效字符,即将退出"
  52. echo.
  53. echo.
  54. goto cmd3
  55. :cmdchoice
  56. set "selectmore="
  57. set/p selectmore=是否查看所有进程(0: 否, 退出,1: 是):
  58. if "%selectmore%"=="0" (goto cmd3)
  59. if "%selectmore%"=="1" (goto cmd2)
  60. echo.
  61. call :ColorText 0c "无效字符,即将退出"
  62. echo.
  63. echo.
  64. goto cmd3
  65. :cmd1
  66. echo 终止进程中...
  67. taskkill /f /pid %PidList%
  68. echo 进程已终止
  69. PAUSE >null
  70. :cmd2
  71. netstat -ano |findstr %port%
  72. tasklist |findstr %PidList%
  73. goto cmdmain
  74. :cmd3
  75. pause
  76. exit
  77. :ColorText
  78. echo off
  79. <nul set /p ".=%DEL%" > "%~2"
  80. findstr /v /a:%1 /R "^$" "%~2" nul
  81. del "%~2" > nul 2>&1
  82. 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批处理脚本的基础介绍,如果您有特定的问题或需求,请进一步详细了解该脚本语言的官方文档和资料。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/76248
推荐阅读
相关标签
  

闽ICP备14008679号