Приведенный ниже сценарий предназначен для запуска в качестве действия с папкой. Если вы не знакомы с ними, они позволяют отслеживать указанную папку на предмет любых изменений в ее содержимом, после чего может запускаться 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"
(вы можете выбрать любое имя файла, которое вам нравится, но вам нужно будет внести соответствующие изменения в скрипт, который создает вашу папку действие).
Возможно, вам потребуется предоставить необходимые привилегии доступа для запуска этого скрипта.
Если у вас возникнут какие-либо проблемы, дайте мне знать.
person
CJK
schedule
12.10.2018
diskutil info
, чтобы получить информацию о свободном и доступном пространстве. - person vadian   schedule 12.10.2018