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

Опитвам се да напиша текущия път на файла в полето за коментар; тази, която виждате, когато щракнете с десния бутон и получите информация. Доста съм близо, защото го накарах да напише файлов път към всички файлове в папка, но всички файлови пътища са еднакви по някаква причина.

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

Работен поток на автоматизатора

Моята променлива на Shell Script е дефинирана като:

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