Папки / файли авто-тегів впали в папку


2

Я хотів би мати можливість автоматично призначати червону мітку до будь-якої папки / файлу, який впав у папку, що сидить на робочому столі. Я зробив деякі дослідження про це, і здається, що це не може бути зроблено навіть з Automator або Smart Folders, хоча це здається досить простим.

Відповіді:


3

Варіант 1: Використання ліщини

Можна авто-тегувати папки / файли в папку, використовуючи комерційне програмне забезпечення Hazel , який, згідно з його розробником Noodlesoft, "спостерігає за папками, які ви їм повідомляєте, автоматично організовуючи ваші файли відповідно до створених вами правил."

Варіант 2. Використання дій папки

Можна авто-тегувати папки / файли в папку за допомогою Дії папки особливість macOS . Я написав наступний AppleScript, заснований частково на одному з дефолтів Apple Сценарії дій папки і частково за сценарієм, наданим у обговорення в спільнотах підтримки Apple . Я протестував цей сценарій у Mac OS X 10.6.8, 10.9.5 і 10.11.6, і він працював у всіх трьох версіях macOS (але див. Важливе застереження нижче).

property label_color : {none:0, orange:1, red:2, yellow:3, blue:4, purple:5, green:6, gray:7}
on adding folder items to this_folder after receiving these_items
    tell application "Finder"
        try
            repeat with i from 1 to number of items in these_items
                set this_item to item i of these_items
                set label index of this_item to red of label_color
            end repeat
        end try
    end tell
end adding folder items to

Перший рядок сценарію, property label_color : {none:0, orange:1, red:2, yellow:3, blue:4, purple:5, green:6, gray:7}, насправді не потрібно; Я тільки що включив його, щоб показати, який номер індексу етикетки відповідає кожному кольору. Можна видалити перший рядок і змінити його red of label_color до 2 і сценарій буде мати той самий ефект.

Є кілька способів приєднати цей AppleScript до папки як Сценарій дій папки . Один із способів - відкрити Automator, створити новий Дія папки , додайте a Запустіть AppleScript дії, і замінити зміст Запустіть AppleScript дія з цим сценарієм - але це не спрацювало в моєму тесті. Інший спосіб, який працював у моєму тесті, - це зберегти сценарій у будь-якому /Library/Scripts/Folder Action Scripts/ (для використання будь-яким користувачем) або в ~/Library/Scripts/Folder Action Scripts/ (для використання лише поточним користувачем), а потім виконайте наступні дії:

  1. У Finder, Контроль + Натисніть (або клацніть правою кнопкою миші) на будь-яку папку, щоб показати контекстне меню.
  2. У контекстному меню виберіть Налаштування дій папки (або Послуги і потім Налаштування дій папки ).
  3. У вікні підказок виберіть ім'я скрипта, який ви щойно зберегли.
  4. Перевірте Увімкнути дії папок у верхньому лівому куті Налаштування дій папки вікна, якщо вона ще не перевірена.

Важливе застереження

Технічно попередній скрипт встановлює лише файл етикетці , що не зовсім так само, як a тег Як пояснив Джон Сіракуза Ars Technica огляд реалізації тегів в OS X 10.9 ; однак у Finder в OS X 10.9 і пізніших версіях результат попереднього скрипта не відрізнятиметься від тега. Попередній сценарій працює у версіях Mac OS X 10.6 або пізнішої версії.

Більш надійний Сценарій дій папки що встановлює червоний тег і етикетці замість тільки червоного етикетці (хоча, як я вже сказав, результати невідмінні в Finder) можна знайти в AppleScript, наведеному нижче.

Наведений нижче сценарій вимагає, щоб ви спочатку встановили програму James Berry тег інструмент (який вимагає OS X 10.9 або пізнішої версії). Його можна легко встановити за допомогою менеджера пакетів Домашнє ( brew install tag ) або MacPorts ( sudo port install tag ). Якщо ви встановите його з Homebrew, замініть /opt/local/bin/tag (це шлях MacPorts) з /usr/local/bin/tag (що є дорожній шлях) у сценарії нижче.

on adding folder items to this_folder after receiving these_items
    tell application "Finder"
        try
            repeat with i from 1 to number of items in these_items
                set this_item to item i of these_items
                do shell script "/opt/local/bin/tag --add Red " & quoted form of POSIX path of this_item
            end repeat
        end try
    end tell
end adding folder items to

Третій спосіб написати AppleScript (в OS X 10.9 і пізніших версіях) буде встановлюватися Бібліотеку AppleScript / Objective-C, яку написав Шейн Стенлі FileTagsLib а потім замінити do shell script рядок у скрипті вище за допомогою відповідної команди, як описано в FileTagsLib документацію, але я не випробував цей третій варіант.


Тільки сторона-примітка / питання: Чи можна розширити цей або інший сценарій так, щоб будь-який файл / папка, додана до папки, яка додає тег (сценарій вище працює красиво), потім перемістився в інше місце? Це можливо? Те, що ми зазвичай робимо, це скидання файлів / папок у папку "Файл", тоді я даю їм червоний тег, щоб вказати, що я працював на цій конкретній роботі, а потім пізніше перемістив всі ці папки до іншого місця на сервері. Чи можна повністю автоматизувати цей процес?
Alex Monterville

У будь-якому сценарії вище додайте новий рядок раніше end repeat що говорить move this_item to POSIX file "/Server Name/Path/To/Folder/" де "/Server Name/Path/To/Folder/" це шлях до "іншого місця на сервері", про який ви згадуєте. У моєму тесті цей рядок "переміщує" папки / файли на одному томі, але "копіює" папки / файли між томами (так само, як і при перетягуванні папок / файлів у Finder). Він не буде переміщуватись або копіювати, якщо в цільовій папці з таким ім'ям є елемент; Вам доведеться перейменувати одну з двох вручну (можна було б додати більше коду для автоматичного перейменування).
Big Mac

Шлях до сервера, ймовірно, буде щось подібне "/Volumes/Server Name/Path/To/Folder/".
Big Mac

Високий, дякую! Це чудово працює, за винятком того, що, на жаль, він копіює між томами. Але нічого страшного.
Alex Monterville
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.