就差一步,请高手帮我解下IF
本帖最后由 290277275 于 2009-12-12 08:35 编辑搜索当前目录上所有*.LOG文件,并查找LOG文件内“ABC”字符串,当搜到“ABC”运行Q。BAT
当未搜到ABC继续搜索直到搜到为止
; 显示当前目录中所有文件的文件名
$search = FileFindFirstFile("*.log")
$file = FileFindNextFile($search)
If StringInStr(FileRead($file), "abc") Then
RunWait ( "q.bat")
Else
差这一步:当未搜到ABC继续搜索直到搜到为止
EndIf
; 关闭搜索句柄
FileClose($search) 不可能不成功啊:
$search = FileFindFirstFile("*.*")
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
MsgBox(4096, "文件:", $file)
WEnd
FileClose($search) 没怎么看懂 不过FileFindFirstFile 是支持通配符的 本帖最后由 netegg 于 2009-12-13 06:55 编辑
#include <File.au3>
$aA = _filelisttoarray("dir", ".log")
for $file in $aA
$retval = _ReplaceStringInFile($file,“ABC”,“ABC”)
if $retval <> 0 then
RunWait ( "q.bat")
endif
next
不太清楚,abc在同一文件有多处的时候是执行多次q.bat还是只执行一次,这段是执行一次,多次的话,改一下循环里的条件 $search = FileFindFirstFile("*.log")
$file = FileFindNextFile($search)
while 1
If StringInStr(FileRead($file), "abc") Then
RunWait ( "q.bat")
exitloop ;执行完要跳出循环就使用这句
EndIf
wend
FileClose($search)
页:
[1]