cómo obtener la ruta para múltiples archivos correctamente a través de applecript o terminal

2

El script actual que estoy usando para obtener la ruta del archivo para una sola selección en el buscador es

tell application "Finder"
    set thepath to selection as text
    set pospath to quoted form of the POSIX path of thepath
end tell

Me da una ruta como esta: '/Users/lawsome/Desktop/jan-study/untitled folder/'

Este formato de ruta funciona para pasar una sola ruta de archivo para acciones adicionales como mover o eliminar el archivo seleccionado.

Cuando intento el mismo script para varias selecciones en el buscador, obtengo un resultado como este:

'/Users/lawsome/Desktop/Business Org Feedback.pdfMacintosh HD/Users/lawsome/Desktop/Top 10Macintosh HD/Users/lawsome/Desktop/Follow_Up_letters_Samples.pdfMacintosh HD/Users/lawsome/Desktop/Learn Outlook Tips.txtMacintosh HD/Users/lawsome/Desktop/OutlookTips.pdf'

Este resultado no funciona para mí. Lo que estoy tratando de lograr es pasar varias rutas para los elementos del buscador seleccionados para una acción adicional.

Si arrastro varios archivos en el terminal, muestra la ruta de los archivos en un formato diferente y eso funciona para una acción adicional. ¿Cómo puedo obtener la ruta correctamente a través de un script o un comando de terminal?

    
pregunta lawsome 04.02.2018 - 01:30

1 respuesta

3

El selection en Finder devuelve una lista , así que aquí hay un ejemplo de cómo manejaría las cosas:

Ejemplo AppleScript código:

tell application "Finder"
    set theSelection to selection
    if theSelection is {} then
        return
    else if (theSelection count) is equal to 1 then
        set thePathFilename to the quoted form of POSIX path of (theSelection as string)
    else
        set thePathFilename to {}
        repeat with i from 1 to (theSelection count)
            copy (quoted form of POSIX path of (item i of theSelection as string)) & space to end of thePathFilename
        end repeat
        set thePathFilename to thePathFilename as string
    end if
end tell
  • Si no hay selection cuando se ejecuta script , deja de procesar.

  • Si solo hay un elemento en el selection , el thePathFilename contiene un citado POSIX Path Filename del elemento seleccionado, como una cadena.

  • Si hay más de un elemento en el selection , el thePathFilename contiene el citado POSIX Path Fileename de cada uno de los elementos seleccionados, como una cadena, con un espacio después de cada uno.

Nota: El ejemplo AppleScript código es solo eso y no emplea ningún manejo de errores y está destinado solo a mostrar una de las muchas maneras en que se puede realizar una tarea. La responsabilidad recae siempre sobre el Usuario para agregar / usar el manejo de errores según sea necesario / deseado.

    
respondido por el user3439894 04.02.2018 - 02:20

Lea otras preguntas en las etiquetas