Сценарий ниже предназначен для запуска в качестве действия папки .Если вы не знакомы с ними, они позволяют отслеживать назначенную папку на наличие изменений в ее содержимом, после чего может быть запущен AppleScript для выполнения некоторых действий с элементами, которые были добавлены (или удалены) из отслеживаемой папки.
Всякий раз, когда монтируется диск, точка монтирования добавляется как элемент диска в папку /Volumes
.Таким образом, вы можете настроить действие папки для просмотра содержимого папки /Volumes
и запускать AppleScript при каждом подключении нового тома.
Вот сценарий, предназначенный для запуска:
use sys : application "System Events"
use scripting additions
property text item delimiters : tab
property fp : "~/Desktop/diskinfo.csv"
on adding folder items to Volumes after receiving D
set D to a reference to the sys's disk named (item 1 of D)
set f to a reference to sys's file fp
if not (f exists) then initCSVFile(fp)
set isod to the (current date) as «class isot» as string
get the contents of {isod's text 1 thru 10, ¬
isod's text 12 thru -1, ¬
D's name, ¬
gigabytes(D's capacity), ¬
gigabytes(D's free space)} as text
write the result & linefeed ¬
to (f as alias) ¬
starting at eof ¬
as «class utf8»
end adding folder items to
to gigabytes(bytes)
round bytes / (10 ^ 7)
result / 100
end gigabytes
to initCSVFile(fp)
local fp
set f to make of sys new file with properties {name:fp}
{"Date", "Time", "Volume Name", "Capacity (GB)", "Free Space (GB)"}
write (result as text) & linefeed to (f as alias) as «class utf8»
end initCSVFile
Скопируйте и вставьте это в Редактор сценариев и сохраните его как "New Volume Mounted.scpt"
в папке ~/Library/Scripts/Folder Action Scripts
, где ~
- ваш домашний каталог, например, /Users/Alex
,Если папка "Folder Action Scripts"
не существует, создайте ее.
Если вы счастливы, создав отсюда действие с папкой, сделайте это и подключите новый том.Когда приведенный выше сценарий запускается, он добавляет текущую дату и время монтирования тома вместе с его именем, емкостью и объемом свободного места в конец файла diskinfo.csv
на рабочем столе (если файл не существует), скрипт создает его).Это файл CSV (значение, разделенное запятыми), в котором в качестве разделителей используются вкладки (так что на самом деле это TSV).QuickLook обычно может отображать содержимое этих файлов довольно приятно:
Настройка действий папки
Если вы незнакомы с настройкой действия с папкой, затем прочитайте раздел под названием Attaching a Folder Action Script to a Folder
из Mac Automation Scripting Guide - Watching Folders
.
Однако, чтобы сохранитьНекоторое время назад я также создал сценарий, который создаст для вас действие с папкой:
use sys : application "System Events"
property name : "Volumes"
property path : "/Volumes"
property folder action : a reference to folder action named (my name)
property script : "New Volume Mounted.scpt"
property folder : a reference to Folder Action scripts folder
property file : a reference to the file named (my script) in my folder
set folder actions enabled to true
if not (my file exists) then return open my folder
if my folder action exists then return my folder action's scripts
make new folder action with properties {name:my name, path:my path}
tell my folder action to make new script with properties ¬
{name:my file's name, POSIX path:my file's POSIX path}
set my folder action's enabled to true
set my folder action's scripts's enabled to true
Снова скопируйте и вставьте его в новый документ в Редактор сценариев а затем запустить его.Делайте это только после того, как вы сохранили первый скрипт в указанном мною месте, и дважды проверьте имя файла "New Volume Mounted.scpt"
(вы можете выбрать любое имя файла, которое вам нравится, но вам нужно будет внести соответствующие изменения в сценарий, который создаетдействие с вашей папкой).
Возможно, вам потребуется предоставить необходимые привилегии доступа для запуска этого скрипта.
Если у вас возникнут какие-либо проблемы, дайте мне знать.