2 votos

Atajo de teclado para reemplazar archivo dentro de Finder?

Supongamos que acabo de capturar una captura de pantalla llamada "screenshot.jpg" y tengo una carpeta de capturas de pantalla llamada "capturas de pantalla".

Capturas de pantalla
  Trabajo.jpg
  Escuela.jpg
  Misc.jpg

Quiero tomar esta captura de pantalla recién capturada y reemplazar el archivo "misc.jpg" dentro de la carpeta de capturas de pantalla. ¿Cuál es la mejor manera de hacer esto? Sé que puedo renombrar el archivo al nombre del archivo actualmente dentro de la carpeta, copiarlo y pegarlo en la carpeta, y luego elegir la opción "reemplazar archivo" cuando se solicite, pero esto no es ideal. ¿Hay un atajo de teclado u otra manera rápida de realizar esta acción?

Nota: Este es solo un ejemplo de caso de uso. Sería ideal si pudiera usar un método rápido independientemente del nombre de archivo o tipo de archivo.

1 votos

¿Qué tal si escribes un applescript para hacer eso? Una búsqueda puede darte un ejemplo para empezar...

0 votos

@SolarMike Esa es una gran idea. Soy nuevo en Applescripts, pero parece prometedor. Gracias

1 votos

Es una pendiente resbaladiza: ¡Encontré uno para una tarea y luego hice un par más! ¡Buena suerte!

2voto

qarma Puntos 71

Este pequeño AppleScript tomará una captura de pantalla y sobreescribirá el archivo que actualmente tienes seleccionado en Finder.

# Comprueba que precisamente un archivo esté seleccionado
set F to the selection of application "Finder" as list
if (count F)  1 then return beep

set F to F's first item as alias

# Realiza una captura de pantalla directamente al portapapeles
# luego sobrescribe el archivo anterior con la imagen
# desde los datos del portapapeles

do shell script "screencapture -c"
set screenshot to the clipboard as JPEG picture

write screenshot to (F as alias)

No se mueve, copia ni elimina; simplemente lo sobrescribe. Así que, ten en cuenta que la fecha de creación permanecerá igual, lo que potencialmente podría hacer que generes una captura de pantalla nueva escribiéndola en un archivo de imagen creado hace dos años (La fecha modificada se actualiza como esperarías).

Como alguien sugirió, este tipo de cosas funcionaría bien como un servicio en Finder, al cual podrías asignar un atajo.

Creé uno de la siguiente manera:

Un flujo de trabajo de Automator

El script es muy parecido al anterior (y se añade al final de esta respuesta en un bloque de código para que lo copies y pegues). Tiene algo de manejo de errores y notificaciones incluidas, dado que esto va a ser un servicio y es bueno hacerlo robusto. Tampoco toma ninguna captura de pantalla por su cuenta, ya que una captura de pantalla tomada cuando se activa el servicio necesariamente tendría a Finder enfocado, lo que podría no ser la captura de pantalla que deseas.

Por lo tanto, este servicio asume que ya has tomado la captura de pantalla por ti mismo y está esperando en el portapapeles. Finder ya tiene atajos que permiten enviar las capturas de pantalla directamente al portapapeles, así que no es necesario hacer nada extra.

Guardé el servicio como uno llamado Reemplazar Archivo de Imagen, ya que notarás que la entrada son específicamente archivos de imagen en Finder. Por lo tanto, el servicio no se activará accidentalmente si, por ejemplo, se seleccionara un archivo de aplicación.

Ahora aparece en el menú contextual emergente cada vez que hago clic derecho en una imagen en Finder:

Servicio visible en el menú contextual

Luego, fui a Preferencias del Sistema para asignar un atajo de teclado:

Preferencias del Sistema > Atajos de Teclado

Este atajo aparece en el menú de Finder bajo Servicios:

El atajo es visible en el menú de Finder

Elegí R porque es bastante difícil de presionar accidentalmente, pero está bastante cerca de los atajos predeterminados para enviar una captura de pantalla directamente al portapapeles, es decir 3 y 4, lo que significa que el movimiento físico entre tomar una captura de pantalla y activar el servicio es conveniente de hacer.

Me alegra decir que, durante las pruebas, funcionó espléndidamente, así que quizás me lo quede para mí mismo ya que puedo ver que sería bastante útil.

Finalmente, aquí está el bloque de código para el flujo de trabajo de servicio de Automator:

on run {input, parameters}

    # Asegúrate de que se pase precisamente un archivo al servicio
    # De lo contrario termina con un beep
    if (count input) is not 1 then return beep

    # Captura de errores en caso de que el portapapeles
    # no contenga datos de imagen
    try
        set ImageData to the clipboard as JPEG picture
    on error errMsg number errNo
        # Termina el script con una notificación
        return display notification ¬
            "No se encontró contenido de imagen. No se puede proceder." con title ¬
            "Reemplazar Archivo de Imagen" subtitle ¬
            "Error: el contenido del portapapeles es del tipo de datos incorrecto"
    end try

    # Si el script llega a este punto, todo debe estar
    # bien así que podemos intentar sobrescribir el archivo de entrada
    try
        write ImageData to input
    on error errMsg number errNo
        return display notification ¬
            "Sobrescritura no exitosa." with title ¬
            "Reemplazar Archivo de Imagen" subtitle ¬
            ("Error " & errNo as text) & ": " & errMsg
    end try

end run

1 votos

Lo siento, acabo de ver tu nota adicional sobre querer idealmente un método generalizado que funcione para todos los tipos de archivo. Obviamente, limité el mío a tu situación de ejemplo tratando con imágenes, pero es fácil adaptar los detalles y convertirlo en un servicio de reemplazo de archivo general. Si necesitas ayuda adicional, deja un comentario.

0 votos

Lo siento por la demora. Sí, esto es exactamente lo que estaba buscando. Gracias por tu detallada explicación. He aceptado tu respuesta. ¡Saludos!

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