FileSelectFolder, folder, , , 请选择根目录 if folder { Gui, add, text, x0 y0 w400 h80 vinfo, gui, add, Progress, x0 y80 w400 h20 vprogress, 0 x := A_ScreenWidth - 420 y := A_ScreenHeight - 190 gui, show, x%x% y%y%, 批量随机取图片 FileCreateDir, %A_Desktop%outfiles GuiControl, , info, 创建输出文件夹 RunWait, %ComSpec% /c dir /AD /b /s `"%folder%`" >%A_Temp%folderlist.tmp, , Hide FileRead, content, %A_Temp%folderlist.tmp content := folder "`n" content ;加上根目录 if StrLen(content) > 1 { GuiControl, , info, 开始处理文件 content := RegExReplace(content, "n$", "") effect_folder_count = 0 StringSplit, var, content, `n Loop % var0 { GuiControl, , info, % "第" A_Index "个文件夹:" var%A_index% file := Randomfile(var%A_index%,"jpg") if file { effect_folder_count++ StringReplace, newname, file, %folder%, , ;去根目录 newname := RegExReplace(newname, "^\", "") newname := RegExReplace(newname, "\", "_") newname := RegExReplace(newname, ":", "_") newname := RegExReplace(newname, "__", "_") newname := RegExReplace(newname, "r", "") newname := effect_folder_count "_" idx "_" newname if strlen(newname) > 250 { SplitPath, file, , , ext, name Random, num, 1000, 9999 newname := effect_folder_count "_" idx "_" name "_" num "." ext } file := RegExReplace(file, "r", "") GuiControl, , Progress, % A_index/var0*100 GuiControl, , info, % "第" A_Index "个文件夹:" var%A_index% "`n源文件:" file " 目标:" A_Desktop "outfiles" newname FileCopy, %file%, %A_Desktop%outfiles%newname%, 1 } } } } MsgBox, 64, 提示, 已完成, 共计处理%folder%下%var0%个文件夹`n有效文件夹数:%effect_folder_count%`n将会打开输出文件夹! run, %A_Desktop%outfiles ExitApp Randomfile(path,type){ global idx RunWait, %ComSpec% /c dir /A-D /b `"%path%*.%type%`" >%A_Temp%list.tmp, , Hide FileRead, content, %A_Temp%list.tmp if StrLen(content) > 1 { content := RegExReplace(content, "n$", "") StringSplit, var, content, `n Random, idx, 1, %var0% Return path "" var%idx% } }