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