Automator Service: principal de la entrada de archivos o carpetas

2

No puedo encontrar ninguna información sobre esto, así que espero que alguien con experiencia pueda llenar el vacío.

Estoy escribiendo un simple Servicio Automator, y no puedo pasar el primer paso.

  • El script es un Service
  • El servicio recibe el files or folders seleccionado en Finder.app
  • Run AppleScript

El script es

on run {input,parameters}
    set test to container of input -- Can’t make container into type reference.
    display dialog test as string
    return input
end run

El parámetro input tiene el archivo o la carpeta seleccionados, y todo lo que quiero hacer en esta etapa es obtener la carpeta principal del elemento seleccionado. Todo lo que intento, que proviene de innumerables soluciones cercanas en la web, falla y me dice que no puedo convertir el contenedor en una referencia.

No tengo idea de lo que debería hacer y no puedo encontrar información sobre esto.

¿Cómo puedo obtener la carpeta principal utilizando Automator?

    
pregunta Manngo 20.01.2017 - 06:50

1 respuesta

2

La parte de llaves de on run {input, parameters} crea una lista y, como tal, debe abordar input como una lista .

El siguiente ejemplo supone que solo se pasa un archivo o carpeta al Servicio:

on run {input, parameters}
    tell application "System Events"
        set thePath to POSIX path of (container of (item 1 of input))
    end tell
    return thePath
end run

¿Puede su servicio recibir más de un archivo o carpeta a la vez? ... En caso afirmativo, deberá incorporar el código a continuación.

El siguiente ejemplo asume que se pasan varios archivos o carpetas al Servicio:

on run {input, parameters}
    set pathList to {}
    repeat with itemNum from 1 to count of input
        tell application "System Events"
            copy POSIX path of (container of (item itemNum of input)) to end of pathList
        end tell
    end repeat
    return pathList
end run

Referencia: ¿Obteniendo la ruta de la carpeta principal de un archivo?

    
respondido por el user3439894 20.01.2017 - 16:08

Lea otras preguntas en las etiquetas