找回密码
 加入
搜索
查看: 2520|回复: 9

[AU3基础] [已解决]AU3无法创建复制文件?还是代码哪里错了?请帮忙看看。

  [复制链接]
发表于 2011-11-9 11:21:03 | 显示全部楼层 |阅读模式
本帖最后由 laojikelly 于 2011-11-9 12:07 编辑
#include <File.au3>
#region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_Compile_Both=y
#endregion ;**** 参数创建于 ACNWrapper_GUI ****
While 1
        If FileExists(@SystemDir & "\GroupPolicy_backup\gpt.ini") = 0 Or FileExists(@SystemDir & "\GroupPolicy\Machine\Registry.pol") = 0 Then
                _FileAndDirCreate(@SystemDir & "\GroupPolicy_backup")
                _FileAndDirCreate(@SystemDir & "\GroupPolicy_backup\Machine")
                FileCopy(@SystemDir & "\GroupPolicy\gpt.ini", @SystemDir & "\GroupPolicy_backup\gpt.ini", 0)
                FileCopy(@SystemDir & "\GroupPolicy\Machine\Registry.pol", @SystemDir & "\GroupPolicy_backup\Machine\Registry.pol", 0)
        EndIf
        If FileExists(@SystemDir & "\GroupPolicy_backup\gpt.ini") = 1 And FileExists(@SystemDir & "\GroupPolicy\Machine\Registry.pol") = 1 Then ExitLoop
WEnd
MsgBox(0, "", "123456789")




;~ _FileAndDirCreate()
;===============================================================================
; 函数名称:   _FileAndDirCreate()
; 描述:       创建文件和文件夹
; 语法:       _FileAndDirCreate($FilePach)
; 参数:       $FilePach - 创建文件的路径和文件名.
; 例子:       _FileAndDirCreate('C:\Users\Administrator\Desktop\a.txt');创建文件
;             _FileAndDirCreate('C:\Users\Administrator\Desktop\a');创建文件夹
;
; 作者:      lixiaolong - http://www.autoitx.com/
;===============================================================================

Func _FileAndDirCreate($FilePach)
        Dim $szDrive, $szDir, $szFName, $szExt
        $arrPath = _PathSplit($FilePach, $szDrive, $szDir, $szFName, $szExt)
        If Not FileExists($FilePach) Then
                If $szExt = '' Then
                        DirCreate($FilePach)
                Else
                        _FileCreate($FilePach)
                EndIf
        Else
                For $i = 1 To 1000
                        If Not FileExists($szDrive & $szDir & $szFName & '(' & $i & ')' & $szExt) Then ExitLoop
                Next
                If $szExt = '' Then
                        DirCreate($szDrive & $szDir & $szFName & '(' & $i & ')')
                Else
                        _FileCreate($szDrive & $szDir & $szFName & '(' & $i & ')' & $szExt)
                EndIf
        EndIf
EndFunc   ;==>_FileAndDirCreate
感谢李小龙的UDF。问题已经无敌解决了。
发表于 2011-11-9 11:53:12 | 显示全部楼层
\GroupPolicy\Machine\ 为空
发表于 2011-11-9 11:57:30 | 显示全部楼层
你运行的时候有没有错误提示啊
发表于 2011-11-9 12:05:49 | 显示全部楼层
@SystemDir & "\GroupPolicy\Machine\Registry.pol" 这个不存在?
 楼主| 发表于 2011-11-9 12:08:41 | 显示全部楼层
谢谢以上三位大神。你们的意见很重要!
发表于 2011-11-9 12:19:21 | 显示全部楼层
LZ八成搞错了源、条件。
Local $Bk_Dir = @SystemDir & '\GroupPolicy_backup'
While Not FileExists($Bk_Dir & '\gpt.ini') Or Not FileExists($Bk_Dir & '\Machine\Registry.pol')
        DirCreate($Bk_Dir & '\Machine')
        FileCopy(@SystemDir & '\GroupPolicy\gpt.ini', $Bk_Dir)
        FileCopy(@SystemDir & '\GroupPolicy\Machine\Registry.pol', $Bk_Dir & '\Machine')
WEnd
MsgBox(64, '', 'ok')
发表于 2011-11-9 12:24:11 | 显示全部楼层
回复 1# laojikelly


    看第6行及第10行。前面=0证明没这个文件,后面却要把这个不存在的文件复制到别处?

如果你现在是解决了,但肯定是错的,空文件而已。
 楼主| 发表于 2011-11-10 09:21:40 | 显示全部楼层
回复 7# afan


    十分谢谢超版。您太仔细啦。连我自己都还没注意过来!谢谢您的指点!无限感激之情无以为报。
 楼主| 发表于 2011-11-10 09:23:26 | 显示全部楼层
#include <File.au3>
#region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_Compile_Both=y
#endregion ;**** 参数创建于 ACNWrapper_GUI ****
While 1
        If FileExists(@SystemDir & "\GroupPolicy_backup\gpt.ini") = 0 Or FileExists(@SystemDir & "\GroupPolicy_backup\Machine\Registry.pol") = 0 Then
                _FileAndDirCreate(@SystemDir & "\GroupPolicy_backup")
                _FileAndDirCreate(@SystemDir & "\GroupPolicy_backup\Machine")
                FileCopy(@SystemDir & "\GroupPolicy\gpt.ini", @SystemDir & "\GroupPolicy_backup\gpt.ini", 0)
                FileCopy(@SystemDir & "\GroupPolicy\Machine\Registry.pol", @SystemDir & "\GroupPolicy_backup\Machine\Registry.pol", 0)
        EndIf
        If FileExists(@SystemDir & "\GroupPolicy_backup\gpt.ini") = 1 And FileExists(@SystemDir & "\GroupPolicy\Machine\Registry.pol") = 1 Then ExitLoop
WEnd
MsgBox(0, "", "123456789")




;~ _FileAndDirCreate()
;===============================================================================
; 函数名称:   _FileAndDirCreate()
; 描述:       创建文件和文件夹
; 语法:       _FileAndDirCreate($FilePach)
; 参数:       $FilePach - 创建文件的路径和文件名.
; 例子:       _FileAndDirCreate('C:\Users\Administrator\Desktop\a.txt');创建文件
;             _FileAndDirCreate('C:\Users\Administrator\Desktop\a');创建文件夹
;
; 作者:      lixiaolong - http://www.autoitx.com/
;===============================================================================

Func _FileAndDirCreate($FilePach)
        Dim $szDrive, $szDir, $szFName, $szExt
        $arrPath = _PathSplit($FilePach, $szDrive, $szDir, $szFName, $szExt)
        If Not FileExists($FilePach) Then
                If $szExt = '' Then
                        DirCreate($FilePach)
                Else
                        _FileCreate($FilePach)
                EndIf
        Else
                For $i = 1 To 1000
                        If Not FileExists($szDrive & $szDir & $szFName & '(' & $i & ')' & $szExt) Then ExitLoop
                Next
                If $szExt = '' Then
                        DirCreate($szDrive & $szDir & $szFName & '(' & $i & ')')
                Else
                        _FileCreate($szDrive & $szDir & $szFName & '(' & $i & ')' & $szExt)
                EndIf
        EndIf
EndFunc   ;==>_FileAndDirCreate
这个才是正确的。谢谢超版指点。
发表于 2011-11-11 09:16:46 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 09:47 , Processed in 0.087720 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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