找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27742|回复: 6

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

[复制链接]
发表于 2013-3-28 13:01:19 | 显示全部楼层 |阅读模式
本帖最后由 princes 于 2013-3-28 13:03 编辑

各位高手:
   
     我的一个程序需要用到某个端口,这个端口是一个标注规定的,不能更改,而且这个端口很少有程序使用到。通过命令知道是其中一个svchost进程占用了该端口,一结束该进程我的程序就可以用了,请问如何用批处理或者程序来获得占用该端口PID,并根据这个PID来结束这个进程?谢谢了!
发表于 2013-3-28 13:25:30 | 显示全部楼层
  1. netstat -ano | findstr ":500\>"
复制代码
上面的500就是你的端口号
得到的结果最后一列的数字就是PID
 楼主| 发表于 2013-3-28 16:24:56 | 显示全部楼层
回复 2# ShadowFiend

谢谢你的回答,但是好像你没有理解我的问题哦。这个命令是可以知道并获得PID,但是怎么样再通过PID获得具体是哪个进程,并结束这个进程? 我说的是整个过程不用人工干涉哦。
发表于 2013-3-28 16:56:22 | 显示全部楼层

  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
复制代码
发表于 2013-3-28 17:46:47 | 显示全部楼层
本帖最后由 ShadowFiend 于 2013-3-28 17:48 编辑

答案见楼上
 楼主| 发表于 2013-4-1 18:49:40 | 显示全部楼层
回复 4# Demon

谢谢你的帮助,不过好像有点问题哦!运行你给的批处理,屏幕上只是出现 “按任意键继续”,没有其它的显示。PID等都没有看到显示。
发表于 2013-4-1 20:47:07 | 显示全部楼层
回复 6# princes


    把@echo off删掉,把执行过程贴出来看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 02:30 , Processed in 0.026570 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表