Вот полный скрипт, который делает то, что вы хотели.Я не хотел публиковать его первоначально, потому что я полагал, что есть какая-то простая однострочная строка, которую кто-то предложит в качестве решения.Надеемся, что это решение не является Rube Goldberg способом ведения дел.
Словарь Finder имеет свойство extension name , так что вы можете сделать что-то вроде:
tell application "Finder"
set myFiles to name extension of file 1 of (path to desktop)
end tell
Таким образом, приведенное выше даст вам только расширение первого файлана рабочем столе пользователя.Кажется, что была бы простая функция для получения (базовое имя - расширение), но я не нашел ее.
Вот скрипт для получения только имен файлов без расширения для каждого файла во всем каталоге:
set filesFound to {}
set filesFound2 to {}
set nextItem to 1
tell application "Finder"
set myFiles to name of every file of (path to desktop) --change path to whatever path you want
end tell
--loop used for populating list filesFound with all filenames found (name + extension)
repeat with i in myFiles
set end of filesFound to (item nextItem of myFiles)
set nextItem to (nextItem + 1)
end repeat
set nextItem to 1 --reset counter to 1
--loop used for pulling each filename from list filesFound and then strip the extension
--from filename and populate a new list called filesFound2
repeat with i in filesFound
set myFile2 to item nextItem of filesFound
set myFile3 to text 1 thru ((offset of "." in myFile2) - 1) of myFile2
set end of filesFound2 to myFile3
set nextItem to (nextItem + 1)
end repeat
return filesFound2
Хотя приведенный выше скрипт действительно работает, если кто-то знает более простой способ сделать то, что хотел OP, пожалуйста, опубликуйте его, потому что я все еще чувствую, что должен быть более простой способ сделать это.Может быть, есть дополнение для сценариев, которое также облегчает это.Кто-нибудь знает?