标题: [文本处理] 请教如何用批处理获得占用某个端口进程的PID并结束它! [打印本页]
作者: princes 时间: 2013-3-28 13:01 标题: 请教如何用批处理获得占用某个端口进程的PID并结束它!
本帖最后由 princes 于 2013-3-28 13:03 编辑
各位高手:
我的一个程序需要用到某个端口,这个端口是一个标注规定的,不能更改,而且这个端口很少有程序使用到。通过命令知道是其中一个svchost进程占用了该端口,一结束该进程我的程序就可以用了,请问如何用批处理或者程序来获得占用该端口PID,并根据这个PID来结束这个进程?谢谢了!
作者: ShadowFiend 时间: 2013-3-28 13:25
- netstat -ano | findstr ":500\>"
复制代码
上面的500就是你的端口号
得到的结果最后一列的数字就是PID
作者: princes 时间: 2013-3-28 16:24
回复 2# ShadowFiend
谢谢你的回答,但是好像你没有理解我的问题哦。这个命令是可以知道并获得PID,但是怎么样再通过PID获得具体是哪个进程,并结束这个进程? 我说的是整个过程不用人工干涉哦。
作者: Demon 时间: 2013-3-28 16:56
- @echo off
- setlocal enabledelayedexpansion
- set port=49152
- for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%port%"') do (
- if "%%e%" == "" (
- set pid=%%d
- ) else (
- set pid=%%e
- )
- echo !pid!
- taskkill /f /pid !pid!
- )
- pause
复制代码
作者: ShadowFiend 时间: 2013-3-28 17:46
本帖最后由 ShadowFiend 于 2013-3-28 17:48 编辑
答案见楼上
作者: princes 时间: 2013-4-1 18:49
回复 4# Demon
谢谢你的帮助,不过好像有点问题哦!运行你给的批处理,屏幕上只是出现 “按任意键继续”,没有其它的显示。PID等都没有看到显示。
作者: BAT-VBS 时间: 2013-4-1 20:47
回复 6# princes
把@echo off删掉,把执行过程贴出来看看。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |