电脑桌面整理机第2次修改2020年07月31日.ahk
;
;; ///// 第1部分,文件名和标题 /////
;~ 此脚本的文件名:电脑桌面整理机第2次修改2020年07月31日.ahk
;~ 此脚本的标题:电脑桌面整理机第2次修改2020年07月31日.ahk
;; ///// 第2部分,参考文献 /////
;~ 参考了这个文章 http://www.autoahk.com/archives/18460
; 文件自动分类整理
; 河许人
; 用代码创造属于自己的世界!
;
; a:=[]
; FileSelectFolder,folder
; Loop,%folder%*.*
; {
; temp:=folder . "" . A_LoopFileExt
; if not a.HasKey(%A_LoopFileExt%)
; FileCreateDir,%temp%
; a.Push(%A_LoopFileExt%)
; FileMove,%A_LoopFileFullPath%,%temp%
; }
; /*
; 创建数组a
; 选择文件夹并把路径存储到folder
; 循环文件夹里所有的文件(*.*作为通配符可以匹配所有文件)
; 设置临时变量temp为分类文件夹的完整路径
; 如果数组a里没有当前文件的扩展名
; 创建分类文件夹
; 并把扩展名添加到数组a中
; 把文件移动到分类文件夹中
;
; 思路;
; 创建数组a,用于存储文件夹下所有出现过的文件扩展名,一开始为空。
; 然后循环文件夹下所有的文件,取得它们的扩展名,并判断是否已经创建了扩展名文件夹。
; 判断依据是,a数组为空,创建文件夹后,下一步就会把那类的文件扩展名添加到数组a之中。
; 如果数组a里没有该扩展名,说明没有创建该文件夹。
; 做完以上步骤后,肯定都有了各种扩展名的文件夹,接下来就把它们移动到对应的文件夹里。
;
; by @SciFX
; /*
;; ///// 第3部分,源代码 /////
;~ 建议先备份文件夹到固态移动硬盘再使用此脚本,以免破坏文件夹原有位置和结构
; 警告: 由于此脚本会对大批量的文件进行处理,
; 所以请先小批量测试并理解此脚本的工作过程和操作原理之后再使用
; 此处创建并显示双进度条,上面的绿色进度条用于显示当前文件处理进度,下面的红色进度条用于显示总的处理进度
;~ Progress, b w200, My SubText, My MainText, My Title
;~ Progress, 50 ; 设置进度条的位置为 50%.
;~ Sleep, 4000
;~ Progress, Off
;~ mSourceFolder := A_Desktop . "S"
;~ mDestinationFolder := A_Desktop . "myClassifiedFiles"
FileSelectFolder,mSourceFolder,%A_Desktop%,1,请选择需要分类整理的来源文件夹
FileSelectFolder,mDestinationFolder,%A_Desktop%,1,请选择存放已经分类整理的文件的目的文件夹
;~ 在大批量移动文件之前必需先询问一下
loop,2
{
MsgBox, 4, , "Loop All Files in ScriptDir"`n"是否立即按照文件类型批量整理文件夹和子文件夹中的所有文件?"`n`n"来源文件夹:"%mSourceFolder%`n"目的文件夹:"%mDestinationFolder%`n`nDo It 立即执行 ?
IfMsgBox, No
ExitApp
}
loop,3
{
FileCreateDir,%mSourceFolder%
FileCreateDir,%mDestinationFolder%
a:=[]
loop,Files,%mSourceFolder%*.*,R
{
mDuplicateFileNumber := 0
mTempFolder:=mDestinationFolder . "" . A_LoopFileExt . ""
if not a.HasKey(%A_LoopFileExt%)
{
FileCreateDir,%mTempFolder%
}
a.Push(%A_LoopFileExt%)
mTempDestinationFile := mTempFolder . A_LoopFileName
ReCheckDuplicateFile:
;~ 如果检测到目标文件夹中已经存在某个文件侧自动重命名(在文件名后面加上重复的数字序号)
IfExist,%mTempDestinationFile%
{
mDuplicateFileNumber++
SplitPath,A_LoopFileName,,,, tOutNameNoExt
mTempDestinationFile :=mTempFolder . tOutNameNoExt . "-" . mDuplicateFileNumber . "." . A_LoopFileExt
goto,ReCheckDuplicateFile
}
FileMove,%A_LoopFileFullPath%,%mTempDestinationFile%
;~ FileCopy,%A_LoopFileFullPath%,%mTempDestinationFile%
}
}
MsgBox,电脑桌面上的文件夹S中的所有文件已经按照文件扩展名分类整理到文件夹myClassifiedFiles中了。
;; ///// 第4部分,此脚本的作者的联系方式 /////
;
;
;~ 我的腾讯QQ邮箱是:
;~ 595076941@.qqcom
;~ 我的腾讯微信号是:
;~ weiyunwps
;
;
;; ///// 第5部分,此脚本结束标志 /////
;~ 此AutoHotkey脚本到此行结束