¿Puede el servicio de automatización obtener la ruta de la carpeta principal?

Ya tengo un servicio que creará un archivo de red: /// enlace a un punto compartido a través de AFP, pero me gustaría tener uno que haga la carpeta principal de un archivo.

Si hago clic derecho en un archivo, me gustaría tener la opción de elegir copiar la ruta del archivo al archivo o la carpeta principal de archivos.

Preferiría que la secuencia de comandos esté en Shell / bash y no en AppleScript y el escenario de mis sueños sería una forma de copiar tanto la ruta del archivo como la carpeta principal de la ruta del archivo al portapapeles. Luego, cuando pegué, se vería así:

Ruta del archivo: file:///Volume/parentfolder/file.pdf Carpeta principal: file:///Volume/parentfolder

Preferiblemente me gustaría obtener cuatro líneas de texto en el portapapeles en una sola acción, pero la segunda mitad (carpeta principal) es la que me falta actualmente.

@bmike, no veo cómo interpretó el OP donde cambió el último párrafo para incluir "Preferiblemente me gustaría obtener cuatro líneas de texto en el portapapeles en una sola acción" cuando lo que veo que se muestra es una línea de texto, es decir File Path: file:///Volume/parentfolder/file.pdf Parent Folder: file:///Volume/parentfolder, ¿me estoy perdiendo algo o has malinterpretado algo? Gracias.
Sí. Puede que haya hecho una edición incorrecta @user3439894. ¿Puedes arreglarlo?

Respuestas (1)

Cree un nuevo Servicio de Automator , con la siguiente configuración:

  • El servicio recibe los [archivos o carpetas] seleccionados en [Finder]

Agregue una acción Ejecutar script de shell , con la siguiente configuración:

  • Shell [/bin/bash]                Pasar entrada [como argumento]

Reemplazando todo el código predeterminado con el siguiente código de ejemplo :

toTheClipboard="File Path: file://$(sed 's: :%20:g' <<< "$1") Parent Folder: file://$(dirname "$1" | sed 's: :%20:g')"
pbcopy<<<"$toTheClipboard"

Guarde el servicio de Automator , luego, en Finder , seleccione un elemento y haga clic con el botón derecho en la selección del servicio en el menú contextual de Servicios . El servicio también está disponible desde el menú Finder > Servicios .

Luego puede pegar desde el portapapeles a donde lo desee.


Nota: El código de ejemplo es solo eso y no emplea ningún manejo de errores y solo pretende mostrar una de las muchas formas de realizar una tarea. La responsabilidad siempre recae sobre el Usuario para agregar/usar el manejo de errores apropiado según sea necesario/deseable.

Esto es perfecto, excepto que necesitaría reemplazar los espacios con% 20 para que puedan vincularse correctamente. Voy a probar un poco de excavación para ver si puedo resolverlo.
Lo intenté pero no tuve éxito al intentar eliminar los espacios en el texto generado con% 20. Realmente agradecería una actualización del código que proporcionó sin los espacios. ¡Muchas gracias!
@Brave_Buffalo, lo actualicé para reemplazar los espacios con %20.