Board logo

标题: cmd 外部命令的一点疑惑 [打印本页]

作者: Eblis     时间: 2008-1-15 21:03    标题: cmd 外部命令的一点疑惑
我用批处理监视一个程序的运行..调用了外部命令netstat和ping&findstr这3个..发现内存使用率直线上升..从最开始的200M到最后 的950M...最后导致netstat命令使用失败..是不是外部命令不释放内存的?每调用一次就占一次内存..
我在3台机器上使用了这个批处理..但就一台比较差的机器出问题了..另的2台机器程序运行得更多都没事``

这台机器是2800+CPU..1G内存..另一台..是P43.0 1G内存..平台不同..

作者: Eblis     时间: 2008-1-15 22:55
顶```

作者: HAT     时间: 2008-1-16 00:17
是否介意把批处理内容和系统版本贴出来看看?

作者: Eblis     时间: 2008-1-16 15:18

@echo off
echo 输入游戏数量:
set /p b=
:star
cls
echo 正在监视%b%个小号运行
goto start
:start
set /a a=0
netstat -n>1.txt
for /f "tokens=4 delims= " %%i in ('findstr "29000" 1.txt') do if %%i == ESTABLISHED set /a a+=1
if %a% LSS %b% goto play
goto start
:play
copy wm.inf e:\wm.inf
goto star

当然可以```

作者: 429499381     时间: 2008-1-16 15:54
@echo off
:star
echo 输入游戏数量:
set /p b=
cls
echo 正在监%b%个小号运行
:start
set a=0
netstat -an | findstr "LISTENING" >1.txt
for /f "tokens=4 skip=1 delims= " %%i in (1.txt) do set /a a+=1
if %a% LSS %b% goto play
ping -n 3 127.0.0.1 >nul
goto start
:play
echo >e:\winf
echo 暂时没有超过指定数量
ping -n 3 127.0.0.1 >nul && cls
goto start

做了一点修改,加了延迟,这样不会出现100%CPU

你自己改一下, 达到自己要的功能吧

作者: plp626     时间: 2008-1-16 16:13
呵,楼主真逗,刚发了贴,自己就顶自己,
其实看你贴的人挺多的,

作者: zh159     时间: 2008-1-16 16:27
CMD循环没有延迟,不死才怪

作者: flasharmy     时间: 2008-1-19 22:28
我也学习了

作者: qin     时间: 2008-2-2 22:17
?