;SortMoviesByGenre.ahk ; Create links to movies, placing them in folders of genre, based on parts of their filename ;Skrommel @2017 #SingleInstance,Force #NoEnv SetBatchLines,0 IniRead,moviefolder,SortMoviesByGenre.ini,Settings,moviefolder IniRead,sortedfolder,SortMoviesByGenre.ini,Settings,sortedfolder IniRead,separator,SortMoviesByGenre.ini,Settings,separator If moviefolder=ERROR moviefolder=C:\Movies If sortedfolder=ERROR sortedfolder=C:\Sorted If separator=ERROR separator=.DVD,.CAM,.XVID Gui,Add,Text,xm,Folder with movies Gui,Add,Edit,xm w300 vmoviefolder,% moviefolder Gui,Add,Button,x+5 w50 GBROWSEMOVIE,&Browse Gui,Add,Text,xm,Folder to put links sorted by genre into Gui,Add,Edit,xm w300 vsortedfolder,% sortedfolder Gui,Add,Button,x+5 w50 GBROWSESORTED,B&rowse Gui,Add,Text,xm,Text separating title and genre from the rest of the name.`nUse , between separators Gui,Add,Edit,xm w300 vseparator,% separator Gui,Add,Button,xm w50 GSORT +Default,&Sort Gui,Add,StatusBar,,Skrommel @ 2017 Gui,Show,,SortMoviesByGenre Return BROWSEMOVIE: Loop { FileSelectFolder,newmoviefolder,% "*" moviefolder,3,Select folder with movies If ErrorLevel=1 Return IfExist,% newmoviefolder Break MsgBox,% "The movie folder could not be found!" } GuiControl,,moviefolder,% newmoviefolder Return BROWSESORTED: Loop { FileSelectFolder,newsortedfolder,% "*" sortedfolder,3,Select folder with movies If ErrorLevel=1 Return IfExist,% newsortedfolder Break MsgBox,% "The sorted folder could not be found!" } GuiControl,,sortedfolder,% newsortedfolder Return SORT: Gui,Submit,NoHide IfNotExist,% moviefolder { MsgBox,% "The movie folder could not be found!" Return } IniWrite,% moviefolder,SortMoviesByGenre.ini,Settings,moviefolder IniWrite,% sortedfolder,SortMoviesByGenre.ini,Settings,sortedfolder IniWrite,% separator,SortMoviesByGenre.ini,Settings,separator SB_SetText("Sorting moivies into " sortedfolder "...") Loop,% moviefolder "\*.*",2,0 { first=999 ;Extract title and genre Loop,Parse,separator,`, { StringGetPos,pos,A_LoopFileName,% A_LoopField If (pos>0 And pos