>source

파인더에서 완벽하게 작동하는 AppleScript가 있습니다. 날짜와 함께 이름이 지정된 폴더를 만들고 바로 가기 키가 연결되어 있습니다.

그러나 다른 앱에서는 저장 창에서 작동하지 않습니다. 도와주세요.

내가 가진 코드는 다음과 같습니다.

tell application "Finder"
    try
        if exists Finder window 1 then
            set thisPath to (the target of the front window) as alias
        else
            set thisPath to (path to desktop)
        end if
    on error
        return
    end try
end tell
set x to my the_perfect_datestring()
if x is not "-ERROR" then
    set fullPath to thisPath & x as text
    tell application "Finder"
        try
            --activate
            if not (exists fullPath) then
                set y to make new folder at thisPath with properties {name:x}
            end if
            activate
        end try
    end tell
end if
on the_perfect_datestring()
    try
        set cd to (the current date)
        set the_year to year of (cd) as number
        set the_month to month of (cd) as number
        set the_day to day of (cd) as number
        if the_month < 10 then set the_month to "0" & the_month
        if the_day < 10 then set the_day to "0" & the_day
        return ((the_year & "-" & the_month & "-" & the_day) as string)
    on error
        return "-ERROR"         
    end try

  • 답변 # 1

    Finder AppleScript 용어를 사용하여 저장 대화 상자의 설정에 액세스 할 수 없습니다.

    AppleScript를 사용하는 유일한 방법은 시스템 이벤트 및 GUI 스크립팅입니다. 스크립트 구문은 특정 UI에 크게 의존합니다.

  • 답변 # 2

    다른 응용 프로그램에서 저장 대화 상자를 사용하려면 워크 플로를 약간 변경해야합니다. 저장 대화 상자는 텍스트 (파일/폴더 이름)와 함께 작동하므로 원하는 문자열에 붙여 넣을 텍스트 서비스를 만들 수 있습니다.

    서비스를 만들려면 Automator 응용 프로그램을 시작하고 서비스 (빠른 작업) 문서를 선택하십시오. 워크 플로에는 허용 할 입력 종류를 결정하는 설정이 있습니다 (예 :

    ).

    Workflow receives current text in any application

    다음, Output replaces selected text 를 확인하십시오  상자-선택한 텍스트를 워크 플로의 출력으로 바꿉니다.

    AppleScript 실행동작을 워크 플로우로 드래그하고 기본 컨텐츠를 새로운 Run 로 완전히 바꿉니다.  처리기 및 날짜 문자열 처리기 (예 :

    on run {input, parameters}
      set x to the_perfect_datestring()
      if x is not "-ERROR" then return x
    end run
    on the_perfect_datestring()
      try
        # do your filename stuff
        tell (current date) as «class isot» as string
          return text 1 thru 10
        end tell -- or whatever
      on error
        return "-ERROR"
      end try
    end the_perfect_datestring
    
    

    워크 플로를 저장 한 후 마우스 오른쪽 클릭 컨텍스트 메뉴에서 텍스트를 선택할 때마다 서비스를 사용할 수 있어야합니다.

    파인더의 원래 작업 과정과 동일하게 새 폴더를 생성하고 강조 표시된 "제목없는 폴더"이름의 서비스를 사용하여 폴더를 변경하는 것입니다.

관련 자료

  • 이전 goroutine - 실행중인 이동 루틴 수 제한
  • 다음 c++ - 파생 클래스 복사 생성자에서 복사 생성자가 어떻게 호출됩니까?