演示:
1、准备工作,资源管理器设置【在标题栏中显示完整路径】;
; 选中文件复制/移动至备份文件夹
^+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
感谢分享
学习