Cách chạy Applescript trên Disk mount


11

Tôi muốn chạy Applescript khi tôi gắn một đĩa cụ thể. Không phải là tập lệnh có nằm trên đĩa hay không, nó chỉ nên chạy khi OS X gắn đĩa.

Tôi đã cố gắng thực hiện điều này bằng các hành động thư mục, nhưng có vẻ như không thể thực hiện theo cách này.

Làm rõ:

  1. Tôi về nhà với Macbook của tôi
  2. Tôi cắm USB Hub của mình vào thiết bị
  3. Đĩa ngoài được gắn trong OS X
  4. Applescript của tôi được chạy, thực hiện một số thứ trên các đĩa đó

Tôi muốn tự động hóa bước 4.


Câu trả lời:


4

Bạn không đề cập đến trong bối cảnh nào bạn đang gắn đĩa, nhưng còn cách khác và gắn đĩa với Applescript thì sao?

Tôi đề cập đến bối cảnh vì khi gắn đĩa với Applescript là một cảnh báo lớn nếu đó là âm lượng mạng và mạng được bảo vệ bằng mật khẩu, thì tên người dùng và mật khẩu sẽ phải được lưu dưới dạng văn bản đơn giản trong tập lệnh để liền mạch chấp hành.

CẬP NHẬT: Một chút tìm kiếm tìm thấy một câu hỏi tương tự ở nơi khác. Về cơ bản, một tập lệnh có thể được thực hiện để làm điều này bằng cách áp dụng tập lệnh dưới dạng Hành động thư mục cho / Tập:

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

Tôi không muốn gắn đĩa với AS, tôi muốn chạy AS khi đĩa được gắn. Tôi sẽ chỉnh sửa bài viết của mình để làm cho nó rõ ràng hơn.
jsadfeew

Tôi hiểu câu hỏi, nhưng tôi không nghĩ có thể làm điều này rất dễ dàng. Tôi đã làm, tuy nhiên, công cụ xung quanh một chút và tìm thấy một cái gì đó nên hoạt động với một chút điều chỉnh để đáp ứng nhu cầu của bạn.
Philip Regan

Tôi đã thực hiện một số sửa đổi nhỏ cho kịch bản. Hoạt động tốt :)
jsadfeew

12

Giải pháp mạnh mẽ nhất có thể là tạo một launchdcông việc với thuộc StartOnMounttính được đặt thành -boolean YES:

StartOnMount <boolean>
Khóa tùy chọn này khiến công việc được bắt đầu mỗi khi hệ thống tập tin được gắn kết.

Đây là cách Time Machine thực hiện nó (xem /System/Library/LaunchDaemons/com.apple.backupd-attach.plist).


Tôi cảm thấy như đây là giải pháp mạnh mẽ nhất, vì nó chỉ phụ thuộc vào launchd, đó là nơi "loại điều này" cư trú đúng cách.
Matt

2

Sử dụng thư mục FinderAction theo dõi / Tập. Khi một thư mục mới xuất hiện, điều đó có nghĩa là một đĩa mới đã được đính kèm. Bây giờ, FolderAction của bạn có thể chạy một hành động Automator, AppleScript hoặc shell script để thực hiện công việc của bạn.



0

Một giải pháp sẽ là tạo một ứng dụng Automator kết nối 3 hành động sau:

  • Nhận các mục tìm kiếm được chỉ định
  • Gắn đĩa hình ảnh
  • Chạy AppleScript

1
Một lần nữa, tôi không muốn gắn hình ảnh hoặc đĩa bằng Applescript, tôi muốn chạy tập lệnh khi đĩa được gắn. Tôi không thể tìm ra cách để thực hiện điều đó với các bước của bạn.
jsadfeew

Đúng, tôi thấy sau khi làm rõ rằng nó không hoạt động vì đó là ổ cứng bạn đang lắp (và không phải đĩa hình ảnh).
kraymer

Vì câu trả lời của bạn giải quyết một câu hỏi khác với những gì được hỏi, bạn nên xem xét xóa nó.
DanielSmedegaardBuus

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.