871224 发表于 2009-11-26 10:34:37

复制文件报错,谁能帮我看下~~~在线等!!

#AutoIt3Wrapper_Icon=1.ICO
#include <File.au3>
#include <Array.au3>


Local $localpath,$netpath,$time
$mark = "复制文件"
If WinExists($mark) Then Exit
AutoItWinSetTitle($mark)
$message = "请选择要拷贝的文件"
$netpath = FileOpenDialog($message, "c:\", "所有文件(*.*)", 1 + 4 )
If @error Then
    MsgBox(4096,"","没有选中任何文件。")
        Exit
EndIf
$dir = FileSelectFolder("请选择存放的文件夹:", "",1)
If StringRight($dir, 1) <> "\" Then
        $localpath = $dir & "\"
Else
        $localpath = $dir
EndIf
$time = InputBox("文件复制v2.0", @CRLF & "输入复制文件时间间隔" & @CRLF & @CRLF & "单位:分钟"& @CRLF &"例如:30", "") ;
If StringRight($time, 1) = "" Then
        $time = 30
EndIf
$times = $time * 60 * 1000
GUISetState(@SW_SHOW)
While 1
                          copy_1()
                          Sleep($times)
WEnd
Func copy_1()
                TrayTip("文件复制", "开始运行...", 1,1)       
                Sleep(1000)
                _FileWriteLog(@ScriptDir & "\copy.log","[开始拷贝]")
               
                Sleep(3000)
                FileCopy($netpath,$localpath,9)
                $arrs = StringSplit ( $netpath, "\")
                $file_1 = _ArrayPop ( $arrs )
                $text = StringReplace($netpath, $file_1, "")
                $temp = @MON&@MDAY&@HOUR&@MIN&@SEC       
                               
                                               
                Sleep(3000)
                If FileExists($localpath&"备份"&"_"&$file_1) Then                                                       
                                               
                        FileMove($localpath&$file_1,$localpath&$temp&"_"&$file_1)
                                       
                Else
                                       
                        FileMove($localpath&$file_1,$localpath&"备份"&"_"&$file_1)
                                               
                EndIf
                Sleep(1000)
                _FileWriteLog(@ScriptDir & "\copy.log","[结束拷贝]")
                Sleep(1000)
                _FileWriteLog(@ScriptDir & "\copy.log","[开始返回拷贝]")
                Sleep(1000)
                FileCopy($localpath&"备份"&"_"&$file_1,$text,1)
                Sleep(1000)
                _FileWriteLog(@ScriptDir & "\copy.log","[结束返回拷贝]")
                Sleep(1000)
                _FileWriteLog(@ScriptDir & "\copy.log","---------------------------------------------------------")

EndFunc


就是 把1个文件拷贝到 1个文件夹然后在从这个文件夹拷贝到 原来的位置。用于测试各盘之间的通讯。

但是 老是报错 有的时候 拷贝2个来回报错 有的时候3个来回。。不一定。。

871224 发表于 2009-11-26 11:40:25

。。。。。。。。测试了N次。。貌似把_FileWriteLog()全部去掉 就不会报错了。 请问各位大大。。为什么呀。。

netegg 发表于 2009-11-26 12:25:53

报错提示是什么

871224 发表于 2009-11-26 15:45:02

本帖最后由 871224 于 2009-11-26 15:58 编辑

类似这些错误

netegg 发表于 2009-11-26 15:59:32

图像没取全?这个提示不全呀
我这没有qq客户端,可能没法帮上忙了

871224 发表于 2009-11-26 16:14:24

额,不全?不会吧应该可以看得见呀可能刷新比较慢

871224 发表于 2009-11-27 23:26:10

谁能帮我解决下呀~~~~~~~:face (37):

netegg 发表于 2009-11-28 03:17:28

# $mark = "复制文件"
# If WinExists($mark) Then Exit
# AutoItWinSetTitle($mark)
注释掉这三行倒是可以运行,不过似乎什么动作都没有-----文件没复制过来

afan 发表于 2009-11-28 13:15:33

蛋蛋只要你的脚本名不含复制文件这几个字就不用注释掉这几行~
我这测试倒是正常,没出问题,测试间隔只设定了20秒。
LZ是不是由于间隔时间过长而被干扰?
而且_FileWriteLog后面的sleep都是多余的。。。

netegg 发表于 2009-11-28 17:10:17

回复 9# afan
可能吧,昨天也没多试,见笑了

871224 发表于 2009-12-1 15:36:57

本帖最后由 871224 于 2009-12-1 15:38 编辑

回复 9# afan


我设置1分钟、10秒、30秒复制都试过。不管文件大小。只要有_FileWriteLog就报错。但是不一定一开始就报错。有时候可以复制2-3次,然后才报错。有的时候第一次复制就报错。报错总是在写日志的时候报错。如果不写日子,不管复制多久,都正常。。。
页: [1]
查看完整版本: 复制文件报错,谁能帮我看下~~~在线等!!