11 votos

Copiar archivos al portapapeles usando applescript

A menudo me encuentro en la línea de comandos queriendo copiar archivos al portapapeles, para poder pegarlos como adjuntos en Mail. Si tengo un archivo de imagen, image1.png Puedo lograr esto con

osascript -e 'tell app "Finder" to set the clipboard to ( POSIX file "image1.png" )'

Si ejecuto el comando anterior y luego abro un nuevo mensaje en Mail y pulso el comando V, el archivo de imagen se pega como adjunto. Tenga en cuenta que pbcopy es aparentemente no una solución aquí, porque esto copiaría el contenidos del archivo y resultan ser basura cuando se pegan con el comando V.

Mi pregunta es ¿cómo puedo hacer lo mismo con varios archivos? Supongamos que quiero pegar ambos image1.png y image2.png . Esto es trivial desde Finder (seleccionar ambos, comando C, luego cambiar a Mail y comando V; voilá, ambos archivos aparecen como adjuntos) pero ¿cómo puedo hacer esto desde la línea de comandos?

1voto

PBR Puntos 36

Esto no es perfecto para lo que quieres, pero creo que puede acercarte. Quicksilver tiene una herramienta de línea de comandos. Una vez instalada, puede enviar archivos desde la línea de comandos a la aplicación Quicksilver y, desde allí, enviarlos como archivos adjuntos en Mail.

Para instalar la herramienta de línea de comandos Quicksilver, active Quicksilver. A continuación, vaya a Quicksilver > Preferencias para abrir la ventana de preferencias. Haga clic en Preferencias en la parte superior derecha de la ventana. A la izquierda, haga clic en la herramienta de línea de comandos e instálela.

En el Terminal, podrás escribir

qs path/to/file1 path/to/file2 path/to/file3 path/to/file4

Al pulsar Intro se enviarán esos archivos al primer panel de Quicksilver. Pulse el tabulador para pasar al panel de acciones y elija la acción Correo/Nuevo correo electrónico con archivo adjunto. Pulse Intro y aparecerá un nuevo correo electrónico con los archivos seleccionados adjuntos.

Tenga en cuenta que también tendrá que instalar los plugins Mail y Command Line en Quicksilver (Quicksilver > Preferencias > Plug Ins).

1voto

Bibou Puntos 520

Puedes hacer algo como :

set f to {(POSIX file "/path/to/a/folder/a.png"), (POSIX file "/path/to/another/folder/b.png")}
tell application "Finder"
    try -- to delete any old temp folder
        delete folder "AS_mailCopy" of (path to temporary items)
    end try
    set tmp to make new folder at (path to temporary items) with properties {name:"AS_mailCopy"}
    duplicate f to tmp
    select files of tmp
    activate
    tell application "System Events" to keystroke "c" using command down
    delete tmp
end tell

Ahora su mesa de trabajo contiene varios archivos (de varias carpetas) que puede pegar en su correo.

-5voto

Zo219 Puntos 1716

¿Por qué no arrastrar y soltar? A veces los técnicos se complican demasiado y olvidan las cosas sencillas que puede hacer un Mac.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X