首先貼上源碼,然後逐條解釋。該源碼保存在後綴爲.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等(這些指令我沒試過),感興趣的可以訪問這個網址:
最後,說說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