Atajo de teclado para reemplazar un archivo dentro del Finder?

2

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

Screenshots
 └ Work.jpg
 └ School.jpg
 └ Misc.jpg

Quiero tomar esta captura de pantalla recientemente 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 cambiar el nombre del archivo al nombre del archivo que se encuentra actualmente dentro de la carpeta, copiarlo y pegarlo en la carpeta y luego elegir la opción "reemplazar archivo" cuando se me solicite, pero esto no es lo ideal. ¿Existe un método abreviado de teclado u otra forma 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 sin importar el nombre del archivo o el tipo de archivo.

    
pregunta Zachary David Saunders 16.12.2017 - 05:08

1 respuesta

1

Este pequeño AppleScript tomará una captura de pantalla y sobrescribirá cualquier archivo que haya seleccionado actualmente en Finder.

    # Check that precisely one file is selected 
    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

    # Perform a screengrab straight to the clipboard
    # then overwrite the file above with the image
    # data from the clipboard

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

    write screenshot to (F as alias)

No se mueve, copia, o elimina; simplemente lo sobrescribe. Por lo tanto, recuerde que esto significa que la fecha creada seguirá siendo la misma, lo que potencialmente podría hacer que genere una nueva captura de pantalla al escribirla en un archivo de imagen creado hace dos años. (La fecha modificada se actualiza como cabría esperar).

Como alguien sugirió, este tipo de cosas funcionaría bien como un servicio en Finder , al que podría asignar un acceso directo.

Fui a crear uno:

Lasecuenciadecomandosesmuysimilaralaanterior(yseadjuntaalfinaldeestarespuestaenunbloquedecódigoparaqueustedlacopie/pegue).Tienealgúntipodemanejodeerroresynotificaciones,dadoqueesteseráunservicioyesbuenoqueseasólido.Tampocotomaningunacapturadepantallaporsísola,yaqueunacapturadepantallatomadacuandoseactivaelservicionecesariamentetendráelFinderenfoco,loquepodríanoserlacapturadepantallaquedesea.

Porlotanto,esteserviciosuponequeyahastomadolacapturadepantallayqueestáenesperaenelportapapeles.Finderyatieneaccesosdirectosquepermitenenviarcapturasdepantalladirectamentealportapapeles,porloquenohaynecesidaddehacernadaadicional.

GuardéelserviciocomounollamadoReemplazararchivodeimagen,yaquenotarásquelaentradasonespecíficamentearchivosdeimagenenFinder.Porlotanto,elservicionoseactivaráaccidentalmentesi,porejemplo,seseleccionóunarchivodeaplicación.

AhoraapareceenelmenúcontextualemergentecuandohagoclicconelbotónderechoenunaimagenenFinder:

Acontinuación,ingreséenPreferenciasdelsistemaparaasignarunmétodoabreviadodeteclado:

EsteaccesodirectoapareceenelmenúFinderenServicios:

Elegí⌃⇧⌘Rporqueesrazonablementedifícilpresionaraccidentalmente,peroesbastanteadyacentealosaccesosdirectospredeterminadosparaenviarunacapturadepantalladirectamentealportapapeles,esdecir,⌃⇧⌘3y⌃⇧⌘4,loquesignificalamaniobrafísicaentretomarunacapturadepantallaylaactivacióndelservicioesconvenienteparahacer.

Mealegradecirque,enlaspruebas,funcionóespléndidamente,asíquepuedoquedármelo,yaquepuedoverqueesbastanteútil.

Finalmente,aquíestáelbloquedecódigoparaelflujodetrabajodelservicioAutomator:

onrun{input,parameters}#Makesurepreciselyonefileispassedtotheservice#Otherwiseterminatewithabeepif(countinput)isnot1thenreturnbeep#Errorcatchingintheeventthattheclipboard#doesnotcontainimagedatatrysetImageDatatotheclipboardasJPEGpictureonerrorerrMsgnumbererrNo#Terminatescriptwithanotificationreturndisplaynotification¬"No image content found.  Unable to proceed." with title ¬
                "Replace Image File" subtitle ¬
                "Error: clipboard content is the wrong data type"
        end try

        # If the script reaches this point, all must be
        # well so we can try and overwrite the input file
        try
            write ImageData to input
        on error errMsg number errNo
            return display notification ¬
                "Unsuccessful overwriting." with title ¬
                "Replace Image File" subtitle ¬
                ("Error " & errNo as text) & ": " & errMsg
        end try

    end run
    
respondido por el CJK 23.12.2017 - 23:39

Lea otras preguntas en las etiquetas