返回列表 发帖
回复 20# 再世情緣
修改的代码我完全理解不了,要学的还好多啊

TOP

回复 24# 再世情緣

之前也都是注释掉的啊,“::”和rem作用不是相同的么?另外sures.txt是我从服务器上导下来的,测试时我也是一直在自己笔记本上测试的。

TOP

回复 26# 再世情緣

我试了好久都不行#83。受你的启发,我不打算一次性开那么多监视窗口了。打算先直接生成各类资源文件,然后要监控哪个就直接运行生成的BAT文件即可,因为有些资源可能都不使用(这是我后来发现的)。
这次真是非常感谢你的帮助,我现在发现好多复杂的事情都可以用批处理来解决,最近也一直在补习这门功课。以后有疑问的地方可能还会向你求教,希望没打扰到你

TOP

回复 28# 再世情緣
经过几天学习和你的教导,我更改的最终版本是这样的。
一共分三部分: 如代码执行效率有不完善的地方,请多多赐教。
第一部分,文件生成!(count.bat)
@echo off &color 0a &setlocal enabledelayedexpansion
pushd "%cd%"
:main
sures sures >sures.txt
for /f "tokens=1,2,3,4 delims==" %%a in (config.txt) do (
  set /a "i=0","j=0"
  set "name=%%a" &set "tk1=%%b" &set "tk2=%%c" &set "t=%%d"
  if not exist "%computername%_!name!.txt" (echo.data   time     computername    !name!^<Inuse^>^/^<Available^>)>"%computername%_!name!.txt"
  for /f "delims=" %%1 in ('findstr /i /c:"!tk1!" "sures.txt" ^>nul 2^>nul') do (set /a "i+=1")
  for /f "delims=" %%1 in ('findstr /i /c:"!tk2!" "sures.txt" ^>nul 2^>nul') do (set /a "j+=1")
  (echo.%date:~0,10%   %time:~0,8%   %computername%   !i!^/!j!)>>"%computername%_!name!.txt"
)
ping localhost -n %t% >nul 2>nul
cls &goto :mainCOPY
第二部分:参数配置(config.txt)
agent=_12     RES IN USE=_12  RES AVAILABLE
telephony= LINE.*_8     RES IN USE= LINE.*_8  RES AVAILABLE
ntdll=_15     RES IN USE=_15  RES AVAILABLE
database=_4     RES IN USE=_4  RES AVAILABLE
soap=_50     RES IN USE=_50  RES AVAILABLE=10

第三部分:资源监控(agent.bat或者其它例如soap.bat,代码都一样)
@echo off &color 0a
title %~n0
set /a "t=10"
:ds
type "%computername%_%~n0.txt"
ping localhost -n %t% >nul 2>nul
cls &goto :dsCOPY

TOP

回复 30# 再世情緣

嗯,接收的建议。我是想不要对bat源码进行更改就可以设置循环时间的。date和time的是我自己觉得这两个占的位数挺长的 ,想把它们给尽量缩短点。
周末运行了两天,循环计数时间为10秒,刚才统计了下,5个资源统计文件一共才4.3M,比我想想的要小很多很多。

TOP

本帖最后由 fish509008 于 2013-12-9 22:23 编辑

回复 30# 再世情緣


不好意思啊,好像还是有点问题,配置文件中一共5个资源和搜索条件,但是telephony的统计错误,使用量和可用量都是0,有空帮我分析下。
sures.txt就用之前附件里提供的就行。
count.bat代码如下:
@echo on &color 0a &setlocal enabledelayedexpansion
pushd "%cd%"
:main
rem sures sures >sures.txt
for /f "tokens=1,2,3 delims==" %%a in (config.txt) do (set /a "i=j=0"
  if not exist "%computername%_%%a.txt" (echo.data   time     computername    %%a^<Inuse^>^/^<Available^>)>"%computername%_%%a.txt"
  for /f "delims=" %%1 in ('findstr /i /c:"%%b" "sures.txt" 2^>nul') do (set /a i+=1)
  for /f "delims=" %%1 in ('findstr /i /c:"%%c" "sures.txt" 2^>nul') do (set /a j+=1)
  (echo.!date!   !time!   %computername%   !i!^/!j!)>>"%computername%_%%a.txt")
echo %%d
ping localhost -n 30 >nul
cls &goto :mainCOPY

TOP

回复 33# 再世情緣

我又上传了一遍sures.txt
telephony要搜索的字符串是“ LINE.*_8  RES IN USE”和“ LINE.*_8  RES AVAILABLE”
*代表的是000-119之类的数字。前面的空格是为了区分非INLINE的

TOP

回复 33# 再世情緣
另外再请教你点问题,能不能做到监控窗口刷新时,只增加显示最新一条数据,原有数据还在窗口内,我发现如果生成的统计数据很多的话,每次刷新都是从头到尾的刷新,窗口里的数据滚动好久才能看到最后一条,然后还没等看明白呢,又重新刷一遍....感觉很不妥的样子

TOP

回复 33# 再世情緣

加个/r 解决了无法查找telephony的问题

TOP

返回列表