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 /*