Как открыть разные файлы в активном окне с расширениями с помощью AppleScript - PullRequest
0 голосов
/ 04 мая 2020

Я новичок ie с AppleScript и пытаюсь открыть два файла (.txt & .jpg) в одной папке в активном окне, поэтому каждый раз, когда я дважды щелкаю файл .jpg, он открывает эти два файла, я не уверен, как это сделать. Спасибо!

1 Ответ

0 голосов
/ 04 мая 2020

Сложно. Двойной щелчок по файлу jpeg просто откроет файл в любом предпочитаемом приложении, указанном для этого типа файла (или указанного файла c). Если приложение доступно для сценариев (их не так много), вы можете сделать что-то там.

Вы можете создать приложение AppleScript, которое обрабатывает файлы .jpg, взломав info.plist приложения, затем используйте действие папки, которое назначает приложение AppleScript в качестве приложения по умолчанию для любых файлов jpg, добавляемых в папку. Довольно сложный, и, вероятно, довольно простой agile, особенно если вы новичок ie.

. Более простой подход - создать каплю AppleScript, которая находит файл «партнера» для любого файла, перетащенного на это (либо .jpg, либо .txt) - исходя из heuristi c, что имена / пути (без расширений) одинаковы для каждой пары, поэтому вместо двойного щелчка по jpg вы перетаскиваете его на капля (которая может находиться в вашей док-станции, или в той же папке, что и jpgs, или где вы предпочитаете).

Вот очень быстрая и грязная реализация.

on open (filez)
    repeat with fa in filez
    set ff to fa as string
    set AppleScript's text item delimiters to ":"
    set folderPath to (text items 1 thru -2 of ff) as string
    set AppleScript's text item delimiters to ""

    set n to (name of (info for fa))
    if (n contains ".") then
        set AppleScript's text item delimiters to "."
        set textItems to (text items of n)
        set basename to (items 1 thru -2 of textItems) as string
        set AppleScript's text item delimiters to ""
        set ext to (item -1 of textItems) as string

        if ext is in {"jpeg", "JPEG", "jpg", "JPG"} then
            set textPartner to basename & ".txt"
            if textPartner is in (list folder folderPath) then
                set textPartnerPath to folderPath & ":" & textPartner
                tell application "TextEdit" to open file textPartnerPath
            end if
            tell application "Preview" to open fa
        end if

    end if
    end repeat
end open
...