este código funciona, mas ...
seu manipulador:
splittext {theText, MaxYear, MinYear}
deve ser:
splitText(theText, MaxYear, MinYear}
Observe os parênteses em vez de chaves (e o revestimento do camelo também).
Você sempre deve retornar uma string no seu manipulador:
return "" -- return false
E no loop de repetição acima:
if newname is not "" then -- if newname then
Há outras armadilhas: o tipo de x. É uma string local, ou seja, "Folder" será "Dossier" em francês. Talvez você deva fazer algo assim se não for do país falado em inglês:
log kind of x
Então, todo o código que funciona na minha máquina (10.12.6):
set MaxYear to 2018
set MinYear to 1990
--return splitText("abc2015def", 2018, 1990)
tell application "Finder"
set allfiles to every item of (choose folder with prompt "Choose the Files you'd like to rename:" with multiple selections allowed) as list
-- set allfile to selections
repeat with x in allfiles
log kind of x
if kind of x is "Folder" then
-- if xtype is "Folder" then
set cname to name of x
set newname to my splitText(cname, MaxYear, MinYear)
if newname is not "" then
set name of x to newname
end if
end if
end repeat
end tell
on splitText(theText, MaxYear, MinYear)
set dyear to MaxYear
repeat until dyear < MinYear
set AppleScript's text item delimiters to dyear
set theTextItems to every text item of theText
set AppleScript's text item delimiters to ""
if (count of theTextItems) > 1 then
return the first item of theTextItems & dyear as string
end if
set dyear to dyear - 1
end repeat
return ""
end splitText