afan 发表于 2010-5-7 12:28:52

如果是用Au3调用RunWait()运行BCI那就是在源头就错了…… LZ不会犯这种错误吧?

afan 发表于 2010-5-7 12:58:13

回复afan
可以查找其他类型的文件吗?如 .doc文档,对中文支持可以吗?我尝试了该代码,均无法找到文件啊!比 ...
newuser 发表于 2010-5-7 12:27 http://www.autoitx.com/images/common/back.gif


    全盘搜索需先获取所有盘符,再逐盘搜索。搜索文件可用阿福写的函数。在UDF区找下

newuser 发表于 2010-5-7 13:01:32

回复 17# afan
我找找,谢谢!

waxy 发表于 2010-5-7 14:57:19

回复waxy


    log文件名在同机不会改变文件名吧?直接将2#前4行代码替换成 $file = 'log文件完整路 ...
afan 发表于 2010-5-7 11:40 http://www.autoitx.com/images/common/back.gif
afan,LOG文件名在当次运行结束之前不会改变,直接使用'log文件完整路径名' ,也需要BIC进度结束以后才显示结果。

afan 发表于 2010-5-7 15:10:23

1,BIC是Au3调用Run()运行的吗?
2,每次运行BIC都会生成一个新文件名的log文件?
3,log文件是否即时生成数据(手动查看)?还是等到BIC结束时才有数据?

waxy 发表于 2010-5-7 15:10:39

本帖最后由 waxy 于 2010-5-7 15:13 编辑

我想了个笨办法(可以解决“BIC关闭才显示结果”的问题),但循环中的filecopy只能执行一次,只在BIC的LOG文件中已经出现“lile"字符串才有效;
也就是说“lile"字符串在脚本运行之后出现,脚本则无法找到“lile"字符串再输出结果。代码如下,大家再帮忙看看吧。多谢!Local $search = FileFindFirstFile('BIC_log*.log')
;If $search = -1 Then Exit MsgBox(48, 0, '未搜索到')
Local $file = FileFindNextFile($search)
;Msgbox(0, 0, $file)
FileClose($search)
While 1
      FileCopy($file,"BIC_ERR.log")
                Local $BIC=("BIC_ERR.log")
                Local $a = FileRead($BIC)
      If StringRegExp($a, 'lile') Then ExitLoop MsgBox(64, "错误...", '出错了!')
      Sleep(2000)
WEnd

waxy 发表于 2010-5-7 15:24:59

如果是用Au3调用RunWait()运行BCI那就是在源头就错了…… LZ不会犯这种错误吧?
afan 发表于 2010-5-7 12:28 http://www.autoitx.com/images/common/back.gif
呵呵,当然不会犯这种低级错误,我现在是手动运行BCI的。

waxy 发表于 2010-5-7 15:33:17

1,BIC是Au3调用Run()运行的吗?
2,每次运行BIC都会生成一个新文件名的log文件?
3,log文件是否即时生成 ...
afan 发表于 2010-5-7 15:10 http://www.autoitx.com/images/common/back.gif
1.先手动运行BIC,再运行脚本(也尝过先运行脚本再运行BIC)。
2.为了防止LOG日志被覆盖,BCI每次运行时都会产生一个新LOG文件,只前7位相同。
3.BIC系统一运行即产生LOG文件,之后把运行的情况实时纪录。

afan 发表于 2010-5-7 15:41:05

BCI每次运行时都会产生一个新LOG文件,只前7位相同。 ...
waxy 发表于 2010-5-7 15:33 http://www.autoitx.com/images/common/back.gif

那岂不是有很多log?那样的话脚本读取的就不一定是最新的log文件了

waxy 发表于 2010-5-7 16:03:37

那岂不是有很多log?那样的话脚本读取的就不一定是最新的log文件了
afan 发表于 2010-5-7 15:41 http://www.autoitx.com/images/common/back.gif
因为现在是在做试验,所以每次运行BIC之前,我都会把原来的LOG文件删除。这个问题解决之后,再使用AU3直接运行BIc,只要在运行BIC之前执行一次删除LOG文件的动作应该就可以了。

afan 发表于 2010-5-7 16:29:29

把你21#的第7行改为 FileCopy($file,"BIC_ERR.log", 1) 试试
按说能复制就应该也能读取。。。

waxy 发表于 2010-5-7 17:23:44

本帖最后由 waxy 于 2010-5-7 17:25 编辑

把你21#的第7行改为 FileCopy($file,"BIC_ERR.log", 1) 试试
按说能复制就应该也能读取。。。
afan 发表于 2010-5-7 16:29 http://www.autoitx.com/images/common/back.gif
呵呵,版主就是版主,佩服!可以了!我知道问题出在哪了,脚本最初复制的LOG文件是BIC系统没出错的LOG文件,故无“LILE”字符串,之后的执行的复制动作并没前成功(因为已经存在一个同名的LOG文件),这样脚本就限入死循环了。呵呵,也怪我粗心,之前我有想到在复制文件之前加了一删除动作(加删除命令不行),就是没想到在FileCopy后面加“标志”。
   不过,脚本一定要在BCI系统启动之后执行,否则也是不成功的,不知道为什么脚本在执行时只要第一次没找到'BIC_log*.log'也会限入死循环。再次感谢afan的帮忙!谢谢!

C.L 发表于 2010-5-7 17:25:25

本帖最后由 C.L 于 2010-5-7 17:29 编辑

网页打开实在是有点慢,几分钟都没回复得一个贴,我晕~

waxy 发表于 2010-5-7 17:42:28

网页打开实在是有点慢,几分钟都没回复得一个贴,我晕~
C.L 发表于 2010-5-7 17:25 http://www.autoitx.com/images/common/back.gif

我正想问题版主这个问题,每天到下午4点之后,登录论坛也好看贴、回贴都像蜗牛一样。

C.L 发表于 2010-5-7 17:46:30

呵呵,版主就是版主,佩服!可以了!我知道问题出在哪了,脚本最初复制的LOG文件是BIC系统没出错的LOG文件 ...
waxy 发表于 2010-5-7 17:23 http://www.autoitx.com/images/common/back.gif

你的代码,在BIC没运行之前,$file这个文件名是不存在的,而你带着这个不存在的$file进入了循环,
当前会进入死循环。
解决的办法是,用循环来检查这个$file,如果$file存在了,再进入检查"lile"的循环就不会进入死循环了
类似:
While Not $file
        $search = FileFindFirstFile('BIC_log*.log')
        $file = FileFindNextFile($search)
        ToolTip ($file)
        Sleep (1000)
WEnd
页: 1 [2] 3
查看完整版本: [已解决]读取文本文件使用通配符问题