Automator에서 텍스트 요청, 터미널로 전달


5

사진의 메타 데이터를 빠르게 변경하기 위해 간단한 Automator 서비스를 만들려고합니다. x 크기의 파일을 선택하고 서비스를 실행하고 변경하려는 f 번호를 묻는 팝업을 얻습니다.

현재 파인더에서 선택한 파일을 가져 와서 다음 터미널 명령을 실행하도록 설정되어 있습니다.

exiftool -FNumber="1.8" -overwrite_original_in_place "$@"

(우리에게 메타 데이터를 편집하는 데 사용 된 응용 프로그램을 exiftool)

이 명령은 작동하지만 FNumber는 1.8로 하드 코딩됩니다. "텍스트 요청"명령을 통해 f- 번호를 동적으로 지정할 수 있기를 원합니다. 그러나 텍스트를 요청하고 선택한 파일을 동시에 입력으로 사용하는 방법을 모르겠습니다. 아요

답변:


1

특히 Automator의 "Ask for text"명령을 사용하지 않으려면 다음과 같이하십시오.

서비스에서 조치 항목을 "쉘 스크립트 실행"이 아닌 "AppleScript 실행"으로하십시오.

이 AppleScript를 사용하십시오.

on run {input, parameters}
    set myvar to text returned of (display dialog "What F-stop do you want to set?" default answer "1.8")
    repeat with myitem in input
        set myscript to "exiftool -FNumber=\"" & myvar & "\" -overwrite_original_in_place \"" & (POSIX path of myitem) & "\""
        do shell script myscript
    end repeat
end run

여기에 이미지 설명을 입력하십시오


1

글쎄, 나는 @Daniel과 같은 일을하고있었습니다.

그러나 exiftool 명령을 한 번만 전달하려고했습니다. 이제 선택의 여지가 있습니다 :-).

  property ExifTool : "PathTo/exiftool -FNumber="
property ExifToolOption : "-FNumber="
on run {input, parameters}
    set pathList to ""
    repeat with i from 1 to count of items of input
        set this_item to item i of input
        set pathList to pathList & space & "\"" & (POSIX path of this_item) & "\"" as string

    end repeat
    display dialog "Enter FNumber" default answer "" buttons {"Cancel", "OK"} default button 2
    set fStop to text returned of the result
    set fStop to fStop as number
    do shell script ExifTool & space & ExifToolOption & fStop & space & "-overwrite_original_in_place" & space & pathList
end run
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.