找回密码
 加入
搜索
查看: 2014|回复: 2

[AU3基础] 【已解决】filecopy无法实现复制不覆盖?

[复制链接]
发表于 2012-3-28 23:45:49 | 显示全部楼层 |阅读模式
本帖最后由 apoorman1986 于 2012-3-29 13:43 编辑

今晚闲着,想把批处理COPY转为AU3,发现用FILECOPY命令标志0或8大部分都失败(文件比较少,或名字比较短成功过!)难道一定要用AU3调成CMD命令才行?

批处理的命令是这样写的:
echo N|copy F:\LOG\*.log E:\SOFT\ /-y
我用AU3这样测试:
FileCopy("F:\LOG\*.log","E:\soft",0)
F:\LOG文件夹放了N个.LOG文件,E:\SOFT有F:\LOG中的其中若干个文件.
为了节省时间,E:\SOFT中存在的文件就不用覆盖了,跳过。
我用FILECOPY的0和8标志试了N次,都不行,不知道为什么,难道是写的不对,还是一定要用CMD命令才能?求解。
用FILECOPY标志1+8肯定成功,但达不到想要的效果,特来求助!

评分

参与人数 1金钱 +15 收起 理由
afan + 15 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2012-3-29 00:56:53 | 显示全部楼层
本帖最后由 lixiaolong 于 2012-3-29 00:58 编辑

测试了FILECOPY的0.

这是我的理解.
比如F:\LOG\*.log找到了5个文件,它开始检查第一个文件,E:\SOFT文件夹下是否已存在.
如果没有复制第一个文件到E:\SOFT文件夹下,再检查第二个文件....

如果发现了已存在的文件,它不再检查第二个文件了,所以不成功.

我想FILECOPY的0的动作应该是这样.

$search = FileFindFirstFile("F:\LOG\*.log")

; 检查搜索是否成功
If $search = -1 Then
        Exit
EndIf

While 1
        $file = FileFindNextFile($search)
        If @error Then ExitLoop

;~     MsgBox(4096, "文件:", $file)
        If Not FileExists("E:\soft\" & $file) Then
                FileCopy("F:\LOG\*.log", "E:\soft\")
        Else
                ExitLoop
        EndIf
WEnd

; 关闭搜索句柄
FileClose($search)


你把它改成这样就是你要的效果了.

$search = FileFindFirstFile("F:\LOG\*.log")

; 检查搜索是否成功
If $search = -1 Then
        Exit
EndIf

While 1
        $file = FileFindNextFile($search)
        If @error Then ExitLoop

        FileCopy("F:\LOG\" & $file, "E:\soft\" & $file)
WEnd

; 关闭搜索句柄
FileClose($search)

评分

参与人数 2金钱 +40 贡献 +5 收起 理由
xms77 + 10 + 5
afan + 30

查看全部评分

 楼主| 发表于 2012-3-29 12:06:10 | 显示全部楼层
回复 2# lixiaolong


   测试成功!,谢谢李小龙!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 17:36 , Processed in 0.114417 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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