4 votos

AppleScript para elegir automáticamente los archivos de una carpeta

Pregunta de novato. He creado un Applescript que mira el nombre de la Carpeta seleccionada, copia el último término del nombre de la Carpeta y lo añade al principio del Nombre de Archivo de los archivos dentro de la Carpeta. Me gustaría hacer elegir la Carpeta automáticamente en lugar de manualmente. Estoy seguro de que es un pequeño cambio, pero no estoy seguro de cómo...

tell application "Finder"

    set selected_items to selection

    repeat with this_item in selected_items

        set current_name to name of this_item as text

        set current_extension to name extension of this_item

        set length_extension to length of current_extension

        set name_no_ext to text 1 thru (-length_extension - 2) of current_name

        --set AppleScript's text item delimiters to " "
        set AppleScript's text item delimiters to {"("}

        if (number of text items of name_no_ext > 1) then

            set z to last text item of name_no_ext --get the number at the end of the name before the extension

            --set comments of this_item to z

        end if

        set AppleScript's text item delimiters to ""

    end repeat

    repeat with this_file in (get files of (choose folder))

        set the_name to name of this_file
        set name of this_file to {"(", z, ")", " ", the_name} as string

    end repeat

end tell

1voto

Seif Puntos 121

La forma de manejar la colocación de archivos en una aplicación AppleScript es la siguiente:

on open theFolders
    -- do your stuff here
end open

Estás soltando una carpeta, o quizás más de una carpeta. Por lo tanto, es necesario que haya una repetición allí para manejar los elementos soltados, y luego otra repetición para manejar los elementos dentro de cada uno de los elementos soltados. Así:

on open theFolders
    tell application "Finder"
        repeat with aFolder in theFolders
            set theFolderName to name of aFolder
            set theFiles to every file of aFolder
            --
            repeat with aFile in theFiles
                set theName to name of aFile
                set theNameLength to length of theName
                set theExtension to name extension of aFile
                set theExtensionLength to length of theExtension
                set thePureNameLength to theNameLength - theExtensionLength
                set theName to (characters 1 through thePureNameLength) of theName as string
                set the name of aFile to the last word of theFolderName & "_" & theName & "." & theExtension
            end repeat
            --
        end repeat
    end tell
end open

Creo que esto hace lo que quieres. No sé cómo son los nombres de tus archivos originales, ni cómo son los nombres de tus carpetas, pero para un caso en el que los nombres de tus carpetas sean así:

Carpeta A, Carpeta B, Carpeta C

y donde el contenido de cada carpeta se ve así:

archivo 1.jpg, archivo 2.jpg, archivo 3.jpg

La gota anterior daría los siguientes resultados:

Para la carpeta A

Archivo A 1.jpg, Archivo A 2.jpg, Archivo A 3.jpg

Para la carpeta B

Archivo B 1.jpg, Archivo B 2.jpg, Archivo B 3.jpg

Para la carpeta C

Archivo C 1.jpg, Archivo C 2.jpg, Archivo C 3.jpg

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