|
本案例主要描述了将cmd信息写入Log日志,网络也没有这方面的资源,希望对需要的人有所帮助。其中用到的方法个人觉得不太好,但仍未找到其他捷径,如果大侠们有好的方法,希望指点赐教,O(∩_∩)O谢谢。
一.代码如下:
Const ForReading = 1, ForWriting = 2, ForAppending = 8'参数赋值(1:只读,2:只写,8:追加
Desktop.RunAnalog "Track2"'模拟录制,w7开始菜单中打开cmd.使用这种方法的原因是其他方式打开的cmd,w7 x64不能使用elnet 命令
set wh=createobject("WScript.Shell")'模拟键盘录制top信息。
wh.SendKeys"telnet 10.10.10.44"
wait 1
wh.SendKeys"{ENTER}"
wait 1
wh.SendKeys"admin"
wh.SendKeys"{ENTER}"
wait 2
wh.SendKeys"kedacomIPC"
wh.SendKeys"{ENTER}"
wait 2
wh.SendKeys"cd /"
wh.SendKeys"{ENTER}"
wait 1
wh.SendKeys"top -d 1"
wh.SendKeys"{ENTER}"
wait 2
Set Clipboard = CreateObject("Mercury.Clipboard")'创建剪切板对象
Set fso=createobject("scripting.FileSystemObject")'创建文件对象
filespec="D:\toplog.txt"'文件名和文件路径
Set toplog=fso.OpenTextFile(filespec,forAppending,true)'打开文件,对文件操作是追加。TRUE表示文件不存在时创建一个。
For i=1 to 2'for 设置X次将剪切板中的内容写入文件。利用do loop可以一直写入文件。
Clipboard.Clear
Desktop.RunAnalog "Track12"'模拟录制,将cmd中的top信息复制
toplogclip=Clipboard.GetText ()'将复制的内容放入剪切板
toplog.WriteLine(cstr(toplogclip))'将剪切板中的内容以追加方式写入文件toplog.
wait 10
Next
解析一.win7 x64不用QTP时telnet命令均可正常使用,但使用QTP sysutil.run打开的cmd始终不能使用telnet等命令。无奈,只能利用模拟录制打开cmd,解决此问题。另外,QTP正常录制识别不到cmd,故复制里面的信息也比较头疼,也采用模拟录制解决。由于模拟录制占用较多内存,故要尽量少用。用完之后,记得切换到正常模式录制。本案例中有2处使用了模拟录制.
模拟录制1:点击w7 开始菜单,输入 cmd.
生成语句 :Desktop.RunAnalog "Track2"
模拟录制2:将cmd中的top信息复制;右键全选后按下鼠标enter键表示复制。
生成语句:Desktop.RunAnalog "Track12"
解析二.复制到cmd里面的信息,那么怎么把它们写入log呢?主要利用了剪切板对象clipboard.先把复制的信息存入剪切板,再将剪切板的信息写入log文件.
具体实现:
1. (1)创建剪切板对象
Set Clipboard = CreateObject("Mercury.Clipboard")
(2)清除信息
Clipboard.Clear
(3)将复制的信息存入剪切板
toplogclip=Clipboard.GetText ()
2. (1)参数赋值(1:只读,2:只写,8:追加)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
(2)创建文件对象
Set fso=createobject("scripting.FileSystemObject")
(3)设置文件名和路径
filespec="D:\toplog.txt"
(4)打开文件,TRUE表示若文件不存在则创建该文件
Set toplog=fso.OpenTextFile(filespec,forAppending,true)'
(5)将剪切板中的内容以追加方式写入文件toplog
toplog.WriteLine(cstr(toplogclip))' |
|