Як запустити Applescript на диску


11

Я хочу запустити Applescript, коли монтую певний диск. Це не те, якщо скрипт знаходиться на диску чи ні, він повинен просто запускатися, коли OS X монтує диск.

Я намагався виконати це за допомогою дій з папками, але схоже, що це неможливо зробити так.

Пояснення:

  1. Я повертаюся додому зі своїм Macbook
  2. Я підключаю свій USB-концентратор до пристрою
  3. Зовнішні диски змонтовані в OS X
  4. Мій Applescript запускається, робить якісь речі на цих дисках

Я хочу автоматизувати крок 4.


Відповіді:


4

Ви не згадуєте, під яким контекстом ви монтуєте диск, а як бути в іншому напрямку та монтажі диска за допомогою Applescript?

Я згадую контекст, тому що при монтажі диска з Applescript є великим застереженням, що якщо це мережевий об'єм, а мережа захищена паролем, то ім'я користувача та пароль повинні бути збережені як звичайний текст у скрипті для безперебійного використання виконання.

ОНОВЛЕННЯ: Трохи пошуку знайшли подібне питання в інших місцях. По суті, для цього можна зробити сценарій, застосувавши сценарій як дію папки до / томів:

on adding folder items to this_folder after receiving these_items
    repeat with aItem in these_items
        tell application "Finder"
            if (local volume of aItem) and (name of aItem is "[Name of Hard Drive]") then
                -- do something with the drive
                -- eject aItem
            end if
        end tell
    end repeat
end adding folder items to

Я не хочу монтувати диск з AS, я хочу запустити AS, коли диск встановлюється. Я відредагую свою публікацію, щоб зробити її більш зрозумілою.
jsadfeew

Я зрозумів питання, але не думаю, що це зробити дуже легко. Я, однак, трохи подолав і знайшов щось, що повинно працювати з тюнінгу, щоб задовольнити ваші потреби.
Філіп Реган

Я вніс кілька невеликих модифікацій у сценарій.
Відмінно

12

Ймовірно найбільш надійне рішення - створити launchdроботу з StartOnMountвластивістю, встановленою для -boolean YES:

StartOnMount <boolean>
Цей необов'язковий ключ змушує запускати роботу щоразу, коли монтується файлова система.

Ось як це робить Time Machine (див. /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).


Я відчуваю, що це найбільш надійне рішення, оскільки воно залежить лише від запуску, саме там "така річ" належним чином знаходиться.
Метт

2

Використовуйте Finder FolderAction, який контролює / Томи. Коли з’являється нова папка, це означає, що новий диск був приєднаний. Тепер ваша FolderAction може виконати дію Автоматизатора, AppleScript або оболонку сценарію, щоб зробити вашу справу.



0

Рішенням було б створити додаток Automator, що поєднує три наступні дії:

  • Отримати вказані елементи Finder
  • Зображення диска кріплення
  • Запустіть AppleScript

1
Знову ж таки, я не хочу монтувати зображення чи диск із програмою Applescript, я хочу запустити сценарій, коли диск встановлюється. Я не можу знайти спосіб досягти цього своїми кроками.
jsadfeew

Так, після уточнення я бачу, що це не працює, тому що це жорсткий диск, який ви встановлюєте (а не диск із зображеннями).
краймер

Оскільки ваша відповідь стосується іншого питання, ніж те, що задається, вам слід розглянути можливість її видалення.
DanielSmedegaardBuus

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