标题: [系统相关] 关闭远程访问之后,获取进程的内存的批处理为何出错? [打印本页]
作者: tester 时间: 2013-11-5 14:36 标题: 关闭远程访问之后,获取进程的内存的批处理为何出错?
请教大家个问题,不知道是否有人碰到过?第一次发帖,若是有什么问题,请管理员指出,谢谢!
内容:写了个计划任务,每隔1min执行一次tasklist获取进程的内存使用情况,并输出到文档中。
问题:通过远程桌面访问此windows系统,执行了计划任务,查看输出结果,正确(例如:1024,单位是K)。不停止任务,只是关闭远程访问,等待一段时间,再次远程访问桌面,发现输出不正确了(输出为K)。
详细代码如下:
启动计划任务代码:- @echo off
- setlocal EnableDelayedExpansion
- ::每1分钟监控一次
- md c:\monitorresult
- set MONI=c:\monitorresult
- echo %DATE% %TIME% >>!MONI!\bwclt.txt
- schtasks /create /tn monitor /tr c:\monitor.bat /sc minute
- pause >nul
复制代码
监控代码(monitor.bat):- @echo off
- setlocal EnableDelayedExpansion
- :monitor
- set MONI=c:\monitorresult
- for /f "tokens=5" %%i in ('tasklist /fi "imagename eq system" /nh') do (echo %%i>>!MONI!\system.txt)
- goto :eof
复制代码
另外附上tasklist /fi "imagename eq system" /nh的执行结果为:
作者: tester 时间: 2013-11-5 15:24
tasklist默认输出结果形式是table,将结果输出形式修改为list形式之后,解决了此问题。- for /f "skip=5 tokens=2 delims=:" %%i in ('tasklist /fi "imagename eq system" /fo list') do (echo %%i)
复制代码
作者: DAIC 时间: 2013-11-5 15:27
你把第二个代码改成这样:- @echo off
- set "MONI=C:\monitorresult"
- for /f "delims=" %%i in ('tasklist /fi "imagename eq system" /nh') do (
- >>%MONI%\system.txt echo %%i
- )
复制代码
观察一下连接远程桌面和端口远程桌面的之后,日志里面记录的内容有何差异。
估计是断开之后,正确的数值跑到了第四列,所以你的tokens=5取不到正确的值。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |