Copie el NSURL de un archivo al portapapeles

1

Estoy tratando de hacer una cosa bastante simple: en el menú contextual quiero tener una acción (por ejemplo, con Automator) que obtenga y copie el NSURL del archivo en el portapapeles.

La solución parece simple, pero no funciona (algún error no específico). Esto es lo que tengo hasta ahora:

on run {input, parameters}

   set p to POSIX path of (input)
   set nsu to current application's |NSURL|'s fileURLWithPath:p

   return nsu

end run

Estoy buscando obtener la URL de referencia del archivo, así: file: ///.file/id=6571367.2773272/

Estoy en El Capitán.

¿Alguna idea?

    
pregunta hosea46 14.10.2015 - 15:45

2 respuestas

1

Aquí está la solución al problema (de: enlace ):

use framework "Foundation"

on run {input, parameters}

    set p to POSIX path of (input)
    set nsu to current application's |NSURL|'s fileURLWithPath:p

    set fru to nsu's fileReferenceURL()'s absoluteString() as text

    return fru

end run

No verifiqué la respuesta de Jweak. También puede funcionar, después de todo. El póster en macscripter también mencionó algo importante: la entrada puede contener una lista de elementos (selección múltiple).

Espero que esto ayude a alguien.

    
respondido por el hosea46 14.10.2015 - 19:52
-1

Si pierde el parámetro de parámetros, dejando solo entrada, y si inicia el script declarando el marco, funcionará.

use framework "Foundation"
on run {input}
   set p to POSIX path of (input)
   set nsu to current application's |NSURL|'s fileURLWithPath:p

   return nsu
end run
    
respondido por el jweaks 14.10.2015 - 17:51

Lea otras preguntas en las etiquetas