0 votos

Cómo automatizar la selección del disco usb en función del tamaño

Estoy intentando automatizar un proceso en el que los profesores borran el contenido de los lápices de memoria con diferente nombre y luego vuelven a poner el contenido correcto (el mismo cada vez) y renombran el lápiz de memoria a UDISK.

Quiero añadir un formato del disco en el proceso, y como los estudiantes siguen cambiando los nombres en los sticks, no puedo usar etiquetas de nombre y si los profesores tienen más de un disco en su Mac me preocupa que si uso "disco1" por ejemplo, de repente formatee la partición equivocada. Así que me pregunto si es posible elegir el disco correcto en función del tamaño.

Estoy usando este código: sudo diskutil eraseDisk FAT32 UDISK MBRFormat /dev/disk1

0voto

Tetsujin Puntos 23061

Este es el script de una rutina similar de borrado/copiado masivo que hice con la ayuda de klanomath en esta pregunta relacionada - Encontrar un disco adjunto específico, no un volumen, mediante Applescript al que hay que hacer referencia para ver cómo se extrae el nombre del dispositivo.

Guardé el script como un servicio de Automator, que luego vinculé a una tarea no trivial, de hecho muy difícil de hacer por accidente Cmd Opt Shift F19 comando clave en
Preferencias del Sistema > Teclado > Atajos > Servicios
para poder activar manualmente cada operación y no correr el riesgo de que se dispare accidentalmente.

La rutina encuentra el objetivo potencial utilizando el nombre del dispositivo de mi lector de tarjetas USB, reduciendo el riesgo de formatear al menos el disco equivocado, aunque no tiene ninguna medida de seguridad para la tarjeta SD individual y actuará sobre cualquier tarjeta en el lector cuando pulse la combinación de teclas.

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X