Запись текущего пути к файлу в комментарии к файлу в Automator

Я пытаюсь написать текущий путь к файлу в текстовом поле комментария; тот, который вы видите, когда щелкаете правой кнопкой мыши и получаете информацию. Я довольно близок, потому что у меня получилось написать путь ко всем файлам внутри папки, но по какой-то причине все пути к файлам одинаковы.

Например, когда я щелкаю правой кнопкой мыши файл после запуска скрипта и вижу комментарий, это может быть "'/Users/Admin/Desktop/automator test/folder/spikyBall@2x copy 4.png'", и это будет так для всех файлов.

Рабочий процесс Automator

Моя переменная сценария оболочки определяется как:

bashFilePath=$(osascript -e 'tell application "Finder" to set filePath to quoted form of posix path of (item 1 of (get selection) as text)');

echo $bashFilePath;

person Chewie The Chorkie    schedule 02.12.2013    source источник
comment
Я только что понял кое-что жизненно важное. Даже если вместо сценария оболочки будет сгенерировано случайное число, все комментарии к файлу будут иметь один и тот же номер.   -  person Chewie The Chorkie    schedule 03.12.2013


Ответы (2)


Если я правильно интерпретирую ваш вопрос, попробуйте следующее:

echo $1

В сценариях оболочки $1 является первым аргументом (также работают $2, $3 и т. д.). Таким образом, приведенное выше просто повторяет первый аргумент... который в вашей программе-автоматизаторе является путем к файлу.

person baum    schedule 03.12.2013
comment
Просто повторить $1? Это ничего не добавляет в комментарии. - person Chewie The Chorkie; 03.12.2013

В итоге я использовал для этого чистый сценарий Apple. Выберите любые файлы и папки, которые вы хотите, и запустите скрипт. Его также можно превратить в службу файлов или папок в Automator.

tell application "Finder"
    activate
    set fileList to selection

    if (count result) is 0 then
        try
            get (target of front Finder window) as alias
        on error
            choose folder with prompt "Set comments of files in this folder:"
        end try

        try
            set theFolder to result
            set fileList to every file of folder (result) as alias list
        end try
    end if

    display dialog "How would you like to set comments?" buttons {"Overwrite", "Cancel"} default button 2 with title "Set Spotlight Comments current to file path"

    set userInput to the result

    set itemNum to 1



    if (button returned of userInput) is "Overwrite" then
        if (class of first item of fileList) is alias then
            set comment of every file of folder theFolder to POSIX path of (item itemNum of (get selection) as text)
            set itemNum to itemNum + 1
        else
            repeat with thisFile in fileList
                set comment of thisFile to POSIX path of (item itemNum of (get selection) as text)
                set itemNum to itemNum + 1
            end repeat
        end if
    end if

end tell
person Chewie The Chorkie    schedule 03.12.2013