이 작은 AppleScript는 스크린 샷을 찍고 현재 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)
이동, 복사 또는 삭제되지 않습니다. 단순히 덮어 씁니다. 따라서 생성 된 날짜는 동일하게 유지되므로 2 년 전에 만든 이미지 파일에 새 스크린 샷을 작성하는 것을 볼 수 있습니다. ( 수정 된 날짜는 예상대로 업데이트됩니다.)
누군가가 제안했듯이, 이런 종류의 작업 은 Finder 의 서비스 로 잘 작동 하며 바로 가기를 지정할 수 있습니다.
나는 하나를 만들기 위해 갔다.
이 스크립트는 위의 스크립트와 매우 유사하며 복사 / 붙여 넣기를 위해 코드 블록에서이 답변의 맨 아래에 추가됩니다. 서비스가 될 것이라는 점을 감안할 때 약간의 오류 처리 및 알림이 발생하며 강력한 서비스로 만드는 것이 좋습니다. 또한 서비스가 활성화 될 때 찍은 스크린 샷에는 Finder의 초점이 있어야하므로 원하는 스크린 샷이 아닐 수 있으므로 자체 스크린 샷도 찍지 않습니다.
따라서이 서비스는 사용자가 이미 스크린 샷을 찍었고 클립 보드에서 대기중인 것으로 가정합니다. Finder에는 이미 스크린 샷을 클립 보드로 바로 보낼 수있는 바로 가기가 있으므로 별도의 작업을 수행 할 필요가 없습니다.
입력 한 이미지가 Finder의 이미지 파일임을 알 수 있으므로 이미지 파일 바꾸기 라는 서비스로 서비스를 저장했습니다 . 따라서 응용 프로그램 파일을 선택한 경우 서비스가 실수로 트리거되지 않습니다.
Finder 에서 이미지를 마우스 오른쪽 버튼으로 클릭 할 때마다 팝업 컨텍스트 메뉴에 나타납니다 .
다음으로 시스템 환경 설정으로 이동하여 키보드 단축키를 지정했습니다.
이 바로 가기는 서비스 아래 의 Finder 메뉴에 나타납니다 .
실수로 누르기가 어렵 기 때문에 ⌃⇧⌘R을 선택했지만 스크린 샷을 클립 보드로 곧바로 보내는 기본 바로 가기, 즉 ⌃⇧⌘3 및 ⌃⇧⌘4에 가깝습니다. 스크린 샷과 편리한 서비스를 제공합니다.
테스트에서 훌륭하게 작동했기 때문에 상당히 유용하다는 것을 알기 때문에 스스로 보관할 수 있습니다.
마지막으로 Automator 서비스 워크 플로 의 코드 블록은 다음과 같습니다.
on run {input, parameters}
# Make sure precisely one file is passed to the service
# Otherwise terminate with a beep
if (count input) is not 1 then return beep
# Error catching in the event that the clipboard
# does not contain image data
try
set ImageData to the clipboard as JPEG picture
on error errMsg number errNo
# Terminate script with a notification
return display notification ¬
"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