使用批处理(bat)文件定时记录win7某进程的状态

来源:互联网 发布:c语言中合法的字符常量 编辑:程序博客网 时间:2024/06/06 08:45

首先贴上源码,然后逐条解释。该源码保存在后缀为.bat的批处理文件中,记录文件myinfo.txt保存在G盘(保存在C盘的话,由于win7系统的写保护,可能导致失败)。

@echo off
echo "===================================================开始记录=======================================">>g:\myinfo.txt
echo "映像名称","PID","会话名","会话","内存使用" >>g:\myinfo.txt
echo "==================================================================================================">>g:\myinfo.txt
@echo off
:loop
TIMEOUT 10
echo %date% %time% >>g:\myinfo.txt
tasklist /fo CSV /nh /fi "imagename eq QQ.exe" >>g:\myinfo.txt
echo "--------------------------------------------------------------------------------------------------">>g:\myinfo.txt
goto loop

首先,说说echo。

第一行的@echo off表示关闭在Dos界面的回显。另外,如果只用 echo "我是谁"的话,是不会写到myinfo.txt文件的,必须用:

ehco "我是谁">>g:\myinfo.txt,这样就可以写到myinfo.txt文件中。

其次,说说:loop 和goto loop

这个毫无疑问,表示循环,位于两者之间的为需要执行的语句

再次,说说TIMEOUT 10

这个表示系统暂停10秒,然后执行下面的语句,你可能在其他网站看到为了达到类似的效果,有使用以下方式的:

比如利用PING命令

          PING -n 11 127.0.0.1>nul

也可以达到同样的效果,或者利用Sleep,WaitFor等(这些指令我没试过),感兴趣的可以访问这个网址:

          http://ss64.com/nt/sleep.html

最后,说说tasklist

最简单的tasklist,就是在cmd打开的dos窗口里,直接输入tasklist,就可以看到所有的进程的内存使用情况。

如果想查看具体某个进程的状态,比如QQ.exe,可以使用下面的语句:

         tasklist /fi "imagename eq QQ.exe"。

其中,eq的效果相当于C语言里面的判断是否相同的语句 imagename == “QQ.exe”,imagename为进程在进程管理器(ctrl+alt+delete)中的图像名字。/fi为filter(筛选器)的缩写。

如果想将QQ.exe的信息保存到g盘的myinfo.txt文件中,可以使用:

         tasklist /fi "imagename eq QQ.exe">>g:\myinfo.txt。

(熟悉c++的看着这个符号“>>”是不是很眼熟?还记得cin,cout么?)

如果想改变QQ.exe的信息显示格式,可以这样:

         tasklist /fo CSV /nh /fi "imagename eq QQ.exe"

具体使用/fo(format的缩写),使用/nh,有什么效果,可以在cmd打开的dos窗口里,通过输入/fo ,/nh,/fo CSV,等不同的组合来查看效果。

         tasklist /fo /fi "imagename eq QQ.exe";

         tasklist /fo CSV /fi "imagename eq QQ.exe";

         tasklist /fo CSV /nh /fi "imagename eq QQ.exe";

         tasklist  /nh /fi "imagename eq QQ.exe";

最后,提一个猥琐的方法,如果想远程知道别人电脑的进程有什么(貌似win7的安全性比较高,建议用xp来练手,当然前提是你知道人家机器的IP,用户名和密码),可以这样做:

   tasklist /s 192.168.0.1 /u administrator /p password

这条命令可以使我们方便的查看到远程主机的运行情况,当然前提是保证RPC服务正常启动。
详细出处可参考这个网址:

http://www.jb51.net/article/17620.htm

 

 

 

 

 

 

 

 

0 0
原创粉丝点击