找回密码
 加入
搜索
查看: 2139|回复: 10

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

  [复制链接]
发表于 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个来回。。不一定。。
 楼主| 发表于 2009-11-26 11:40:25 | 显示全部楼层
。。。。。。。。测试了N次。。貌似把_FileWriteLog()全部去掉 就不会报错了。 请问各位大大。。为什么呀。。
发表于 2009-11-26 12:25:53 | 显示全部楼层
报错提示是什么
 楼主| 发表于 2009-11-26 15:45:02 | 显示全部楼层
本帖最后由 871224 于 2009-11-26 15:58 编辑

类似这些错误

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-11-26 15:59:32 | 显示全部楼层
图像没取全?这个提示不全呀
我这没有qq客户端,可能没法帮上忙了
 楼主| 发表于 2009-11-26 16:14:24 | 显示全部楼层
额,不全?不会吧  应该可以看得见呀  可能刷新比较慢
 楼主| 发表于 2009-11-27 23:26:10 | 显示全部楼层
谁能帮我解决下呀~~~~~~~
发表于 2009-11-28 03:17:28 | 显示全部楼层
# $mark = "复制文件"
# If WinExists($mark) Then Exit
# AutoItWinSetTitle($mark)
注释掉这三行倒是可以运行,不过似乎什么动作都没有-----文件没复制过来
发表于 2009-11-28 13:15:33 | 显示全部楼层
蛋蛋只要你的脚本名不含复制文件这几个字就不用注释掉这几行~
我这测试倒是正常,没出问题,测试间隔只设定了20秒。
LZ是不是由于间隔时间过长而被干扰?
而且_FileWriteLog后面的sleep都是多余的。。。
发表于 2009-11-28 17:10:17 | 显示全部楼层
回复 9# afan
可能吧,昨天也没多试,见笑了
 楼主| 发表于 2009-12-1 15:36:57 | 显示全部楼层
本帖最后由 871224 于 2009-12-1 15:38 编辑

回复 9# afan


我设置1分钟、10秒、30秒复制都试过。不管文件大小。只要有_FileWriteLog就报错。但是不一定一开始就报错。有时候可以复制2-3次,然后才报错。有的时候第一次复制就报错。报错总是在写日志的时候报错。如果不写日子,不管复制多久,都正常。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 13:58 , Processed in 0.129527 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表