本帖最后由 leon460 于 2011-7-20 15:44 编辑
比如,checkfile($source1,$target1)里面有100000个文件,难道非要移动完这10000个文件才能移动checkfile($source2,$target2)? 请问怎么修改代码$i=1
解决方法:暂用 coproc.au3 多线程解决。
Do
checkfile($source1,$target1)
checkfile($source2,$target2)
Sleep(5000)
Until $i=0
Func checkfile($source,$target)
$filenum=1
$search = FileFindFirstFile($source & "\*.pdf") ;list 所有的文件夹名称,不遍历子文件
While 1
$file = FileFindNextFile($search)
If @error Then
ExitLoop
Else
sleep(1000) ;;*************发现文件后,暂停移动,以防止次文件正在被上传
;MsgBox(0,"$file",$file)
$MoveFlag = FileMove($source & "" & $file,$target)
;MsgBox(0,"$MoveFlag",$MoveFlag)
if $MoveFlag = 0 then
Do
$fileNew = $file
$filenum+=1
$fileNew = StringTrimRight ( $fileNew, 4 );除去右边 .pdf 得到文件名
;MsgBox(0,$source & "" & $file,$target & "" & $fileNew & "-02.pdf")
$MoveFlag = FileMove($source & "" & $file,$target & "" & $fileNew & "-" & $filenum & ".pdf")
Until $MoveFlag = 1
$filenum=1
;$file2 = FileOpen(@scriptdir & "\BackupLog.txt", 1)
;FileWrite($file2,$source & "" & $file & " " & _Now() & " 移动此文件失败" & @CRLF)
;FileClose($file2)
endif
EndIf
WEnd
FileClose($search)
EndFunc
|