一心三用的海王 2018-02-26 08:44 采纳率: 0%
浏览 757
已结题

关于windows批处理的问题

我想让这个批处理实现
**
根据输入的端口号,输出该端口占用信息
如果未被占用,提示端口空闲
如果被占用,输出占用端口的进程信息和操作选项
可通过选项快速结束占用端口的进程
**
顺带说一下我是win10环境下用PowerShell运行的

 @echo off
:a
cls
set port=
set /p port=请输入端口号:
cls
if not defined port goto :a
set pid=
set prog=
for /f "tokens=2,4,5" %%a in ('netstat -ano^|find /i ":%port% "') do if not "%%c"=="" (set pid=%%c) else (set pid=%%b)

if defined pid (
    set "pid=%pid: =%"
    for /f "skip=3 tokens=1" %%a in ('tasklist /fi "pid eq %pid%"') do (
        echo 端口号:%port%
        echo PID:%pid%
        echo 进程:%%a
    )
    set user_input=
    set /p user_input=请选择操作a、结束进程 b、取消操作:
    echo 您的选择是:%user_input%
    if "%user_input%" == "a" (
        taskkill /f /fi "pid eq %pid%"
        set result=%ERRORLEVEL%
        if "%result%"=="1" ( echo 已经结束进程,按任意键返回 )
    )
    if "%user_input%" == "b" (
        goto :a
    )
    pause>nul
    goto :a
)
if not defined pid (
    echo 未发现占用端口进程,按任意键返回
    pause>nul
    goto :a
)
exit

查询进程信息都还算正常,但是选择操作那一步用choice和set /p获取到的选择项要么为空要么就不是我输入的值,是不是之前输入端口号对这里有影响?请问各位如何解决这个问题。

  • 写回答

3条回答 默认 最新

  • humanww 2018-02-26 08:51
    关注

    选择的时候需要填1或2

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable