No puedo encontrar ninguna información sobre esto, así que espero que alguien con experiencia pueda llenar el vacío.
Estoy escribiendo un servicio de Automator simple y no puedo pasar del primer paso.
Service
files or folders
enFinder.app
Run AppleScript
el guion 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 input
parámetro tiene el archivo o carpeta seleccionado, 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 en esto, diciéndome que no puedo convertir el contenedor en una referencia.
No tengo idea de lo que debería estar haciendo, y no puedo encontrar ninguna información sobre esto.
¿Cómo puedo obtener la carpeta principal usando Automator?
La parte de llaves de on run {input, parameters}
crea una lista y, como tal, debe abordar la entrada como una lista .
El siguiente ejemplo asume 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 siguiente.
El siguiente ejemplo asume que varios archivos o carpetas se pasan 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: ¿ Obtener la ruta de la carpeta principal de un archivo?
Manngó
input
era una lista. Gracias por tus soluciones. He convertido el primero en un servicio para obtener la ruta principal y modifiqué el segundo para que me proporcione una lista de nombres completos de rutas. Gracias.John Smith