马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
辅助.命令()
如果调用的是一个小程序(或脚本),在此程序(或脚本)未执行结束,主程序的控制流就到下一语句去了。比如以下举例,是需要使用到脚本执行后的结果的。但TC做不到等待脚本运行结束后再执行下一语句。
假设有一个被调用的脚本文件:c:\aaa.vbs, 代码如下:
WScript.Sleep 25*1000 ‘暂停25秒
Set objShell = CreateObject("Wscript.Shell")
objShell.run "cmd.exe /c ping www.163.com -w 0 > c:\jack.txt ", 0, True ’执行ping命令,也需要花上几秒钟时间才能执行结束
TC内的调用代码如下:
语句1 辅助.命令("c:\aaa.vbs", 假) //执行VBS脚本, 并将执行结果保留在:jack.txt中
语句2 string FileString = 文件.读文件("c:\jack.txt ") //读取VBS脚本的执行结果:文件jack.txt的内容
这时,如果执行TC代码,问题就来了:执行<语句1>会调用并运行c:\aaa.vbs, 一运行此脚本,则TC控制流就立即执行<语句2>了。辅助.命令()并没有等待被调用程序执行结束的参数,带来应用范围的不适。没有办法,只得写个循环去判断文件大小来等待被调用程序aaa.vbs是否执行结束, 这增加了代码,相当麻烦。
建议能增加第三个开关参数:true/false, 来表示是否等待被调用程序执行结束。
|