码迷,mamicode.com
首页 > 其他好文 > 详细

按照文件类型批量整理文件

时间:2019-10-10 11:04:38      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:pat   span   app   turn   and   列表   部分   递归   vbs   

;

;        按照文件类型批量整理文件

;

 

;
;
; ###################################################################
; ###################################################################
; ##
; ## 名称 按照文件类型批量整理文件
; ## 文件名 按照文件类型批量整理文件.ahk
; ## 作用 按照文件类型批量整理文件
; ## 用法 把需要批量分类整理的文件和文件夹移动到此脚本所在文件夹中的"F"文件夹中
; ## 用法 在安装了“AutoHotkey_1.1.30.00_setup.exe”软件的Windows7电脑中鼠标双击此文件直接运行
; ## 类型 AutoHotkey 脚本程序
; ## 位置 D:\pr\AutoHotkey\Script
; ## 创建时间 2019年01月05日05时06分
; ## 修改时间 2019年03月01日08时41分
; ## 原创作者 徐晓亮(weiyunwps618)
; ## 作者的腾讯QQ号 595076941
; ## 作者的手机号码
; ##
; ###################################################################
; ###################################################################
;
;

;~ 在大批量移动文件之前必需先询问一下
MsgBox, 4, , "Loop All Files in ScriptDir"`n"是否立即按照文件类型批量整理子目录中所有文件?"`n`ncontinue?
IfMsgBox, No
ExitApp

MsgBox, 4, , "Loop All Files in ScriptDir"`n"是否立即按照文件类型批量整理子目录中所有文件?"`n`ncontinue?
IfMsgBox, No
ExitApp

FileCreateDir,%A_ScriptDir%\F
FileCreateDir,%A_ScriptDir%\!Classify

;~ 为重要文件的文件夹写上前缀标记
global importantmark
;~ global ProgressParam

;~ ProgressParam:=0

loop,Files,%A_ScriptDir%\F\*.*,R ;递归遍历穷举文件夹和子文件夹中的文件
{
;; 进度条窗口不可以移动,并且比较烦人
;; ProgressParam:=ProgressParam+0.5
;; if(ProgressParam>99)
;; ProgressParam:=0
;; ;~ 进度条
;; Progress, %ProgressParam%, %a_loopfilename%,"Moveing Files ...", "Classify And Arrange Files in Folder F"

if(A_LoopFileExt="")
{
IfNotExist,%A_ScriptDir%\!Classify\NullFileExt
FileCreateDir,%A_ScriptDir%\!Classify\NullFileExt
FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\NullFileExt\%A_LoopFileName%
Sleep,9
continue
}

importantmark:=""
if((A_LoopFileExt="docx") or(A_LoopFileExt="xlsx") or (A_LoopFileExt="jpg") )
importantmark:="1_"

if((A_LoopFileExt="ani") or (A_LoopFileExt="au3") or (A_LoopFileExt="avi") or (A_LoopFileExt="doc") or (A_LoopFileExt="dotx") or (A_LoopFileExt="xls") or (A_LoopFileExt="xltx") or (A_LoopFileExt="dot") or (A_LoopFileExt="xlt") or (A_LoopFileExt="ISO") or (A_LoopFileExt="GHO") or (A_LoopFileExt="flv") or (A_LoopFileExt="jpeg") or (A_LoopFileExt="mp4") or (A_LoopFileExt="png") or (A_LoopFileExt="ppt") or (A_LoopFileExt="pdf") or (A_LoopFileExt="7z") or (A_LoopFileExt="ahk") or (A_LoopFileExt="bat") or (A_LoopFileExt="chm") or (A_LoopFileExt="cmd") or (A_LoopFileExt="dot") or (A_LoopFileExt="exe") or (A_LoopFileExt="ico") or (A_LoopFileExt="mdb") or (A_LoopFileExt="mkv") or (A_LoopFileExt="mp3") or (A_LoopFileExt="pas") or (A_LoopFileExt="rar") or (A_LoopFileExt="txt") or (A_LoopFileExt="rmvb") or (A_LoopFileExt="vbs") or (A_LoopFileExt="zip"))
importantmark:="2_"

;~ MsgBox,% A_LoopFileSizeMB

IfGreater,A_LoopFileSizeMB,500
importantmark:="3_Big500MB_"

;~ 如果当前文件是此脚本本身那么跳过当前循环的剩余部分并继续下一次循环递归遍历穷举文件
if(A_ScriptFullPath=A_LoopFileFullPath)
{
continue
}
;~ 如果当前脚本所在目录没有当前循环的文件则直接移动文件并继续下一个循环
IfNotExist,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
{
IfNotExist,%A_ScriptDir%\!Classify\%A_LoopFileExt%
FileCreateDir,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%
FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
Sleep,9
continue
}

;;如果当前循环的文件就在当前脚本所在目录中那么跳过当前循环的剩余部分并继续下一次循环
ScriptDirLoopFileName=%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%A_LoopFileName%
if( ScriptDirLoopFileName=A_LoopFileFullPath)
{
continue
}

;~ MsgBox,%A_LoopFileFullPath%

;~ 重命名重复文件
DuplicateFileCount:=1
loop
{
IfExist,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%DuplicateFileCount%_%A_LoopFileName%
{
DuplicateFileCount=% ++DuplicateFileCount
continue
}
else
{
IfNotExist,%A_ScriptDir%\!Classify\%A_LoopFileExt%
FileCreateDir,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%
FileMove,%A_LoopFileFullPath%,%A_ScriptDir%\!Classify\%importantmark%%A_LoopFileExt%\%DuplicateFileCount%_%A_LoopFileName%
Sleep,9
break
}
}
}

MsgBox, 64, , %A_ScriptDir%"All Files in ScriptDir is Classifyed And Arranged"`n"恭喜你, 已经按照文件类型完成所有当前脚本所在目录和子目录中文件的分类整理"!

;~ MsgBox, 64, , "操作失败的文件共有"%ErrFileCount%"个,详细出错原因列表见ErrFileList.txt文件"!

return

; # 此AHK脚本结束 #############

按照文件类型批量整理文件

标签:pat   span   app   turn   and   列表   部分   递归   vbs   

原文地址:https://www.cnblogs.com/delphixx/p/11646156.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!