Another useful thing for developers is the use of a label to emulate the possibility to use recursive functions
As always, please send feedback
/* Author: Salvatore Agostino Romeo E-Mail: [email protected] Description: This program will let you print(to a txt file) a folder content with or without its own subfolders. Version: 0.5 License: GPL Note: SubProject of AHKxplorer ToDo: ? Bugs: ? */ Gui, Add, Edit, x6 y35 w190 h20 vselectedFolder, Gui, Add, Button, x206 y35 w20 h20 gBtnSelFolder, ... Gui, Add, Checkbox, x6 y65 w120 h20 vsubfolders, Include subfolders Gui, Add, Button, x136 y65 w60 h20 gBtnStart, Start Gui, Add, Text, x6 y5 w220 h30, Select a folder and press start`nYou can use Drag and Drop Gui, Add, Button, x206 y65 w20 h20 gEsc,X Gui, Add, Text, x170 y10 w60 h20 vstatus cRed, Analyzing Gui, Add, Text, x170 y10 w60 h20 vstatus2 cGreen, Done GuiControl, Hide, status GuiControl, Hide, status2 Gui, +AlwaysOnTop +ToolWindow Gui, Show, x270 y264 h94 w236 ,Print folder - romeosa.com Return BtnSelFolder: FileSelectFolder, tempfolder, , , Select the folder to print GuiControl, , selectedFolder, %tempfolder% return BtnStart: Gui, submit, nohide if(subfolders) printFolderWithSubfolders(selectedFolder) else printFolderWithoutSubfolders(selectedFolder) return GuiDropFiles: GuiControl, , selectedFolder, %A_GuiControlEvent% return Esc:: GuiClose: ExitApp return printFolderWithoutSubfolders(folder) { global GuiControl, Hide, status2 GuiControl, Show, status SetBatchLines, -1 Process, Priority, , H FileDelete , %folder%_cont-sub_%A_DD%-%A_MM%.txt Loop, %folder%\*, 2 print=%print%+--+>%A_LoopFileName%`n Loop, %folder%\* print=%print%+--->%A_LoopFileName%`n FileAppend, %tempFolder%`n+`n%print%, %folder%_cont-sub_%A_DD%-%A_MM%.txt Sleep,200 Run, %folder%_cont-sub_%A_DD%-%A_MM%.txt print= GuiControl, Hide, status GuiControl, Show, status2 return } printFolderWithSubfolders(folder) { global GuiControl, Hide, status2 GuiControl, Show, status SetBatchLines, -1 Process, Priority, , H print(folder) FileDelete , %folder%_cont_%A_DD%-%A_MM%.txt Loop, Parse , print , `n { StringTrimLeft, last, A_LoopField , 5 end=%end%%last%`n } FileAppend, %tempFolder%`n+`n%end%, %folder%_cont_%A_DD%-%A_MM%.txt Sleep,200 Run, %folder%_cont_%A_DD%-%A_MM%.txt print= end= GuiControl, Hide, status GuiControl, Show, status2 return } print(folder) { global printTag=%printTag%--+ Loop, %folder%\*, 2 { print=%print%%printTag%--+> print=%print%%A_LoopFileName%`n subfolder=%A_LoopFileFullPath% gosub, printSubFolder } if (A_Index = 0) StringTrimRight, tag, tag, 3 Loop, %folder%\* { print=%print%%printTag%----> print=%print%%A_LoopFileName%`n } StringTrimRight, printTag, printTag, 3 ; msgbox, %print% return } printSubFolder: print(subFolder) return