Работа с комментариями к файлам

о создании и использовании службы для просмотра и изменения Spotlight comments

Spotlight ищет файлы не только по имени, типу и тегам, но и по комментариям. Они так и называются Spotlight comments. Комментарии можно оставить к любому файлу. Для этого открываете свойства файла через контекстное меню или нажмаете ⌘I.

окно свойств файла

Доступ не совсем удобный, а вот свойство полезное.

У меня возникла идея создать простой способ получения и изменения комментариев. Поиск в интернете, скудные знания программирования и небольшой опыт работы с Authomator — дали плоды: написал службу.

Как работает

Выделяете файл и запускаете службу getComment. Выскакивает окно, которое выводит комментарий к файлу, если он есть, и поле для ввода нового комментария. На выбор три действия: переписать комментарий, который есть, отменить ввод или добавить новый комментарий к тому, который имеется.

окно службы

К сожалению скорость запуска не такая быстрая, как хотелось бы. Запускать через контекстное меню не совсем удобно. Но можно повесить на службу сочетание клавиш.

Архив с файлом службы по ссылке.

Чтобы заработал, перенесите в папку: /Library/Services

О службе getComment

Служба создана в Authomator на applescript. За основу взят готовый скрипт и внесены изменения. Ссылка на страницу с оригинальным скриптом: discussions.apple.com

Код applescript:

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
  repeat with filelist1 in fileList
set mycomment to (get comment of filelist1)
end repeat
display dialog "Комментарий: \n" & mycomment & " " default answer "" buttons {"Overwrite", "Cancel", "Append"} default button 3 with title "Set Spotlight Comments"
  set userInput to the result
set newComment to text returned of userInput
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 newComment
else
repeat
with thisFile in fileList
set comment of thisFile to newComment
end repeat
end
if
else
    repeat with thisFile in fileList
tell thisFile
if length of (comment as text) is not 0 then
get
", " & newComment
else
get
newComment
end if
set
comment to (comment & result)
end tell
end
repeat
end
if
end tell