Questo è lo script di una simile procedura di cancellazione / copia di massa che ho creato con l'aiuto di klanomath in questo domanda correlata - Trova disco allegato specifico, non volume, di Applescript di cui è necessario fare riferimento per vedere come viene estratto il nome del dispositivo.
Ho salvato lo script come un servizio di automazione, che ho poi legato a un non banale, in effetti molto difficile da fare per errore Cmd ⌘ Opt ⌥ Shift ⇧ F19 comando chiave in
Preferenze di sistema > Tastiera > Tasti di scelta rapida > Servizi
quindi posso attivare manualmente ogni operazione & non essere a rischio di essere licenziato accidentalmente.
La routine trova il potenziale bersaglio usando il nome del dispositivo del mio lettore di schede USB, riducendo il rischio di formattare almeno il disco sbagliato, sebbene non abbia alcuna misura di sicurezza per la singola scheda SD & agirà su qualsiasi carta nel lettore quando raggiungo la combinazione di tasti.
on run {input, parameters}
-- see https://apple.stackexchange.com/questions/207089/find-specific-attached-disk-not-volume-by-applescript/207103#207103 for BSD Disk workings
global diskName
set diskName to "DISK_NAME"
global BSD_disk
--using ioreg...
set BSD_disk to do shell script "ioreg -l | grep -A 10 SD/MMC/MS/MSPRO | awk '/disk/ {gsub(\"\\"\",\"\"); print $NF}'"
if BSD_disk is not "" then
try
--FAT 16
do shell script "diskutil eraseDisk \"MS-DOS FAT16\" " & diskName & " MBRFormat " & BSD_disk
on error
try
--FAT 32 [>2GB cards]
do shell script "diskutil eraseDisk \"MS-DOS\" " & diskName & " MBRFormat " & BSD_disk
end try
end try
delay 2
tell application "Finder"
set x to (POSIX file "/Users/[user]/BatchFolder") as alias
try
set dest to (POSIX file "/Volumes/" & diskName as string) as alias
on error return
end try
duplicate every item of x to dest
delay 1
if disk diskName exists then
eject disk diskName
end if
beep
end tell
else
return "no SD Card detected"
end if
return input
end run