按照文件类型批量整理文件 ,AutoHotkey 脚本程序,2019年02月06日19时07分,晓亮ahk,腾讯QQ号595076941

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

;
;
; ###################################################################
; ###################################################################
; ##
; ##           名称                 按照文件类型批量整理文件
; ##           文件名             按照文件类型批量整理文件.ahk
; ##           作用                 按照文件类型批量整理文件
; ##           用法                 把需要批量分类整理的文件和文件夹移动到此脚本所在文件夹中的"F"文件夹中
; ##           用法                 在安装了“AutoHotkey_1.1.30.00_setup.exe”软件的Windows7电脑中鼠标双击此文件直接运行
; ##           类型                 AutoHotkey 脚本程序
; ##           位置                 D:\pr\AutoHotkey\Script
; ##           创建时间          2019年01月05日05时06分
; ##           修改时间          2019年02月06日19时07分
; ##           原创作者            晓亮  ahk
; ##           作者的腾讯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%
		continue
	}

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

if((A_LoopFileExt="ani") 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%
	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%
		break
	}
}
}

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

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

return

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

 

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

CnCrypt磁盘加密启动器 by BoAi 2019年02月17日

2019-2-25 15:31:13

其他案例

[每人必看][电脑重要设置][办公自动化]WPS Office 2019 专业版的文档表格作者属性的设置20190310(草稿版)

2019-3-10 13:09:56

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索