args Path, Par, Ext, App local Subs, Obj, List if(Par < 2) do Obj = R(Path, Par, Ext) else Obj = R(Path, 4, Ext) List = file.listfiles(Obj, 0) Obj = line(List, 1) endif if(not App) do file.doverb(Obj, "open") else do(App, Obj) endif quit Function R(Path, Subs, Ext) local OX, Ran, Obj, Xt, Drap local List = file.listfiles(Path, Subs) local Folders = line(List, 0) if(slice(Ext, 1) == "!") do Xt = remove(Ext, 1) Drap = 0 elseif(slice(Ext, 1) == "*") do Drap = 1 else Xt = Ext Drap = 2 endif @Retry Ran = random(Folders) + 1 Obj = line(List, Ran) OX = file.type(Obj) if(not Drap) do if(Xt == OX) jump Retry elseif(Drap == 1) do quit(Obj) else if(Xt != OX) jump Retry endif quit(Obj) //0 - random file in folder only(0) //1 - random file in folder & subfolders(1) //2 - random folder, 1st file(4)