1 votos

Quitar delimitador de la sección de nombre de archivo con Automator

Estoy creando un script de automator que las copias de los archivos de una carpeta a otra y, a continuación, ejecuta un AppleScript para cambiar el nombre del archivo a través de la división de delimitador una y otra vez con el segundo elemento. Por ejemplo, el uso de nombres de archivo:

  • un nuevo archivo$SG789.jpg
  • file_2$123-456.jpg
  • file_name$LG123.jpg
  • this_file$558-432.jpg

Estoy tratando de dividir el nombre por el de "$" signo de dólar para crear los siguientes archivos:

  • SG789.jpg
  • 123-456.jpg
  • LG123.jpg
  • 558-432.jpg

Sin embargo, cuando ejecuto el script, me sale el siguiente error:

La acción "Ejecutar AppleScript" se ha encontrado un error. No se puede obtener el punto 2 de alias "Macintosh HD:Users:descargas:Archivo:un archivo nuevo$SG789-PROC.jpg".

Este es el código que estoy usando en el Ejecutar AppleScript flujo de trabajo:

on run {input, parameters}
    set AppleScript's text item delimiters to "$"
    repeat with anItem in input
        set fileName to item 2 of anItem
        return fileName
    end repeat
end run

¿Qué estoy haciendo mal?

0voto

user3439894 Puntos 5883

Estás haciendo muchas cosas mal:

  1. Si establece AppleScript del elemento de texto delimitadores a otros, a continuación, en su defecto {}, siempre para restablecer {} cuando haya terminado con el temporal delimitador.
  2. input es list y, como tal, usted debe return una list y lo hacen fuera de la repeat de bucle.
  3. item 2 dentro de la repeat bucle debe ser text item 2, sin embargo, anItem dentro de la repeat de bucle , en este caso de uso debe también ser text, por lo que necesita ser (anItem as text).
  4. fileName necesita ser un list debido a que está procesando una list y necesita return una list.

Dicho esto, he aquí un ejemplo de flujo de trabajo de Automator con un AppleScript acción codificada en un ejemplo de la manera de cómo me gustaría escribir el código. Nota sin embargo, que mientras se devuelve una lista de los nombres de los archivos después de la $ delimitador, no estoy seguro de lo bien que va a hacer que como todo depende de código que no están presentes en este ejemplo.

Example Automator Workflow

AppleScript código para Ejecutar AppleScript acción:

on run {input, parameters}
    try
        set AppleScript's text item delimiters to {"$"}
        set theFileNameList to {}
        repeat with thisItem in input
            set the end of theFileNameList to text item 2 of (thisItem as text)
        end repeat
        set AppleScript's text item delimiters to {}
        return theFileNameList
    on error eStr number eNum
        display dialog eStr & " number " & eNum buttons {"OK"} ¬
            default button 1 with icon caution
        set AppleScript's text item delimiters to {}
        return
    end try
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