设为首页 - 加入收藏 - 网站地图 欢迎加QQ群 :14364084
当前位置:谭博的博客 > 编程语言 > bat > 正文

查看计算机已打开的服务端口 代码 .bat

时间:2013-09-29 14:46 来源:未知 标签: 作者:谭博 阅读:

这段代码算是本人批处理的入门代码了,包含的知识点比较丰富

 

将以下代码复制到记事本中,保存 为.bat文件,双击打开,即可看到效果

@echo off 
color 1f 
Title XP端口-进程查询 
setlocal enabledelayedexpansion 
echo ╔-                              -╗ 
echo   本机开放的端口及使用该端口的进程 
echo ╚-                              -╝ 
echo ------------------------------------ 
echo          端口号           进程名称       
ECHO TCP协议: 
::利用netstat命令找出使用TCP协议通信的端口,并将结果分割; 
::将第二个参数(IP加端口)传给%%i,第五个参数(PID号)传给%%j; 
for /F "usebackq skip=4 tokens=2,5" %%i in (`"netstat -ano -p TCP"`) do ( 
call :Assoc %%i TCP %%j 
echo           !TCP_Port!           !TCP_Proc_Name!  


ECHO UDP协议: 
for /F "usebackq skip=4 tokens=2,4" %%i in (`"netstat -ano -p UDP"`) do (  
call :Assoc %%i UDP %%j 
echo           !UDP_Port!           !UDP_Proc_Name! 

echo 按任意键退出 
pause>nul 

:Assoc 
::对%1(第一个参数)进行分割,将第二个参数传给%%e。在本程序中,%1即为上面的%%i(形式为:IP:端口号) 
for /F "tokens=2 delims=:" %%e in ("%1") do ( 
set  %2_Port=%%e 

:: 查询PID等于%3(第三个参数)的进程,并将结果传给变量?_Proc_Name,?代表UDP或者TCP; 
for /F "skip=2 usebackq delims=, tokens=1" %%a in (`"Tasklist /FI "PID eq %3" /FO CSV"`) do ( 
::%%~a表示去掉%%a外面的引号,因为上述命令的结果是用括号括起来的。  
set %2_Proc_Name=%%~a 

 

关注微信公众号

微信扫一扫,打赏我

上一篇:没有了
下一篇:没有了
热评文章
    内容不错,支持一下
    评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)