Я использую AppleScript и Python вместе для сбора системной информации о компьютерах Mac, имеющихся в наличии, а также добавляю некоторую дополнительную информацию в поле комментариев Spotlight.
В частности, AppleScript собирает информацию о Mac, чьи данные я собираю (при загрузке на внешний USB-накопитель). Я использую диалоговые окна и т. д. для сбора отзывов об устанавливаемой версии ОС, номере заказа, а также фактическом маркетинговом названии машины (спасибо https://github.com/MagerValp/MacModelShelf ), все они сохраняются в виде комментариев в окончательный файл System Profiler *.spx, который создается/сохраняется сценарием.
Затем я использую Dropbox, чтобы отправить файл обратно на мой основной Mac (на котором работает Filemaker). Я использую довольно сложный скрипт Python для чтения данных XML из файла системного профилировщика, а затем для вставки важной информации об оборудовании, такой как серийные номера, размер и тип жесткого диска и т. д., в соответствующие поля базы данных.
Я хотел бы проанализировать комментарии Spotlight к файлу spx, чтобы получить дополнительную информацию, например, маркетинговое название, название модели и номер заказа.
Я пытаюсь использовать (в сценарии Python)
spotlightComments = 'mdls -raw -name kMDItemFinderComment ' + str(file_path)
для разбора комментариев. Даже в терминале в качестве отдельной команды это возвращает только пустую строку, несмотря на то, что комментарии видны, когда я щелкаю правой кнопкой мыши файл spx и перехожу к «Получить информацию». Обратите внимание, что это отличается от «(null)», которое я использовал при использовании других облачных сервисов, таких как Sync.com, которые, по-видимому, не переносят метаданные файлов, такие как комментарии Spotlight.
Если я открою редактирование комментариев Spotlight к файлу и добавлю только один символ пробела " " в конце строки, команда сработает, т.е. я верну что-то вроде
iMac Late 2012 | 300001234 | 10.12
Это можно дополнительно разделить с помощью команды Python
parts = spotlightComments.split('|')
В любом случае вернемся к AppleScript!
Я попытался сделать действие с папкой, чтобы автоматически добавлять один символ пробела/" " в конец комментариев к файлу в тот момент, когда что-то добавляется в папку, содержащую его, но, похоже, ничего не происходит.
Вот мой скрипт...
on adding folder items to this_folder after receiving added_items
repeat with currentFile in added_items
set TheComment to the comment of the currentFile
set comment of the currentFile to TheComment & " "
end repeat
end adding folder items to
Даже когда я заменяю добавленную строку на что-то гораздо более очевидное, изменений все равно нет. Я также пытался использовать «мастер» Automator.app для создания действий с папками, а также вручную писать сценарий, сохранять его в «~/Library/Scripts/Folder Action Scripts», а затем подключать папку к сценарию с помощью «Действия с папками». Настраивать"
Как я могу добавить текст к существующим комментариям в Finder с помощью автоматизации?
Кажется, я нашел ответ...
on adding folder items to this_folder after receiving added_items
tell application "Finder"
repeat with currentFile in added_items
set TheComment to the comment of the currentFile
set comment of the currentFile to TheComment & "test"
end repeat
end tell
end adding folder items to