[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 请教如何用批处理获得占用某个端口进程的PID并结束它!

本帖最后由 princes 于 2013-3-28 13:03 编辑

各位高手:
   
     我的一个程序需要用到某个端口,这个端口是一个标注规定的,不能更改,而且这个端口很少有程序使用到。通过命令知道是其中一个svchost进程占用了该端口,一结束该进程我的程序就可以用了,请问如何用批处理或者程序来获得占用该端口PID,并根据这个PID来结束这个进程?谢谢了!

  1. netstat -ano | findstr ":500\>"
复制代码
上面的500就是你的端口号
得到的结果最后一列的数字就是PID
nevermore

TOP

回复 2# ShadowFiend

谢谢你的回答,但是好像你没有理解我的问题哦。这个命令是可以知道并获得PID,但是怎么样再通过PID获得具体是哪个进程,并结束这个进程? 我说的是整个过程不用人工干涉哦。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set port=49152
  4. for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%port%"') do (
  5.     if "%%e%" == "" (
  6.         set pid=%%d
  7.     ) else (
  8.         set pid=%%e
  9.     )
  10.     echo !pid!
  11.     taskkill /f /pid !pid!
  12. )
  13. pause
复制代码

TOP

本帖最后由 ShadowFiend 于 2013-3-28 17:48 编辑

答案见楼上
nevermore

TOP

回复 4# Demon

谢谢你的帮助,不过好像有点问题哦!运行你给的批处理,屏幕上只是出现 “按任意键继续”,没有其它的显示。PID等都没有看到显示。

TOP

回复 6# princes


    把@echo off删掉,把执行过程贴出来看看。

TOP

返回列表