【AHK学习记录】选中文件复制/移动,放入“备份”文件夹

演示:

【AHK学习记录】选中文件复制/移动,放入“备份”文件夹

1、准备工作,资源管理器设置【在标题栏中显示完整路径】;

【AHK学习记录】选中文件复制/移动,放入“备份”文件夹

; 选中文件复制/移动至备份文件夹
^+b::
clipboard :=""
WinGetTitle, 窗口标题, A
备份文件夹 = %窗口标题%\备份
; MsgBox % "文件名为: "文件路径
if RegExMatch(窗口标题, ".*\\.*") ;确保在资源管理窗口
{
    send ^c
    clipwait,2
    选中文件 :=clipboard
    ; msgbox % "选中文件为:"选中文件
    if (选中文件)
    {
        msgbox, 4, ,备份方式选择:`r`r【是】:复制文件`r`r【否】:移动文件
        IfMsgBox Yes ;选择复制选中文件做备份
        {
            filecreatedir, % 备份文件夹
            Loop, parse, clipboard, `n, `r
            {
                RegExMatch(A_LoopField,".*\\(.+?\..*)$",文件名)
                RegExMatch(A_LoopField,"(.*\\).+?\..*$",原始路径)
                ; msgbox % "文件名:" 原始路径1 "+" 文件名1
                文件存在检测 :=% 原始路径1 "备份\" 文件名1
                if (FileExist(文件存在检测), "D")
                {
                    msgbox, 4, ,文件【%文件名1%】已存在,是否替换?
                    IfMsgBox Yes ;第一个备份文件夹存在
                    FileCopy, %A_LoopField%, % 备份文件夹,1
                }else
                FileCopy, %A_LoopField%, % 备份文件夹
            }
        }
        IfMsgBox No ;选择移动选中文件做备份
        {
            filecreatedir, % 备份文件夹
            Loop, parse, clipboard, `n, `r
            {
                RegExMatch(A_LoopField,".*\\(.+?\..*)$",文件名2)
                RegExMatch(A_LoopField,"(.*\\).+?\..*$",原始路径2)
                ; msgbox % "文件名:" 原始路径1 "+" 文件名1
                文件存在检测2 :=% 原始路径21 "备份\" 文件名21
                if (FileExist(文件存在检测2), "D")
                {
                    msgbox, 4, ,文件【%文件名21%】已存在,是否替换?
                    IfMsgBox Yes ;第一个备份文件夹存在
                    FileMove, %A_LoopField%, % 备份文件夹,1
                }else
                FileMove, %A_LoopField%, % 备份文件夹
            }
        }

    }else
    {
        if (FileExist(备份文件夹), "D")
        {
            msgbox, 4, ,已存在一个备份文件夹是否取消:`r`r【是】:取消创建备份文件夹`r`r【否】:创建备份文件夹副本
            IfMsgBox No ;第一个备份文件夹存在
            {
                临时备份文件夹=%备份文件夹% ;备份文件夹 = %窗口标题%\备份
                while InStr(FileExist(临时备份文件夹), "D") ;搜索:检查【临时备份文件夹】的目录是否存在
                    {
                        a := A_index+1
                        临时备份文件夹=%备份文件夹%-%a%
                    }
                备份文件夹=%临时备份文件夹%
                filecreatedir, %备份文件夹%   
            }

        }else
        {
            filecreatedir, %备份文件夹%
        }
 
    }

}else
{
    MsgBox 复制文件备份不适用于该窗口
}
return

给TA捐赠
共{{data.count}}人
人已捐赠
其他

无人值守全自动静默安装AutoHotkey和SciTE4AutoHotkey-2021年11月25日

2021-11-25 13:45:03

其他案例

一个简单的Gui创建多Button的示例

2021-11-27 17:15:20

2 条回复 A文章作者 M管理员
个人中心
购物车
优惠劵
有新私信 私信列表
搜索