2013-03-12 3 views
3

프로그래밍 할 때 Finder를 사용하여 디렉토리를 탐색하는 것이 편리하다는 것을 알았습니다. 과거 필자는 Finder에서 부족한 기능인 (OSX v10.8.2에서) 붙여 넣기 보드 (클립 보드)에 선택한 파일의 전체 경로를 복사하는 쉬운 방법을 원했습니다. 프로그래머이기 때문에 Finder에서 선택한 파일을 마우스 오른쪽 단추로 클릭 할 때 나타나는 파일 컨텍스트 메뉴에 간단한 AppleScript를 시작하는 Automator Workflow를 추가하여 원하는 기능을 추가했습니다.Applescript를 사용하여 현재 선택 항목을 기반으로 Finder 컨텍스트 메뉴 항목 이름 바꾸기

스크립트가 효과적입니다! 그것은 원하는 기능을 추가하고 사용하기 편리합니다. 그러나 스크립트에 추가하고 싶은 동작 중 일부는 아직 수행 방법을 파악할 수 없었습니다. 워크 플로를 시작하는 파인더 컨텍스트 메뉴 항목의 이름은 "파일 복사"입니다. 하나의 파일 만 선택되었지만 여러 개의 파일이 선택되어있을 때 유용합니다. 이름 메뉴 항목을 "파일 이름 복사"로 변경하거나 "복사"+ (선택한 파일 수) + "파일 이름".

내 질문은 : 선택한 파일의 수를 기준으로 Finder에서 선택한 파일을 마우스 오른쪽 버튼으로 클릭 할 때 나타나는 파일 상황에 맞는 메뉴에서 AppleScript를 사용하여 동적으로 항목 이름을 설정하는 방법은 무엇입니까?

이러한 유형의 동작에 대한 선례가 있습니다. Finder에서 선택한 파일을 복사 할 때 볼 수 있습니다. 하나의 파일 만 선택하면 상황에 맞는 메뉴의 복사 메뉴 항목에 "somefile.txt"이 복사되지만 5 개의 파일이 선택되면 복사 메뉴 항목은 5 항목으로 표시됩니다.

+0

필자는 컨텍스트 메뉴를 표시하기 위해 호출 할 때 프로그램 적으로 복사 메뉴 항목을 생성하는 것으로 의심됩니다. 따라서 이름은 동시에 생성되며 조건에 따라 변경됩니다. – markhunte

답변

2

수 없습니다. 글쎄, 당신은 할 수 있겠지만, 그것은 정말로 총체적이며 아마도 그럴 가치가 없을 것입니다. 메뉴에 표시된 이름은 워크 플로 내부의 Info.plist 파일에 저장됩니다. 따라서 이론적으로 파인더 선택을 감시하고 해당 파일을 적절하게 트위스트하는 모니터 스크립트를 작성한 다음 마법 함수 NSUpdateDynamicServices()을 호출합니다. AppleScriptObjC가 필요합니다. (Finder를 죽이고 다시 시작할 수도 있지만 Finder 선택을 변경할 때마다이를 수행해야합니다.)

흥미로운 향상 요청은 이름이 반영되도록 서비스 작업 과정에 이름을 지정하는 방법입니다 선택으로 워크 플로의 이름을 "%에서 복사 경로"로 지정하면 시스템은 "foo.txt"또는 "5 개 항목"또는 자동으로 가져온 것을 대체합니다.

파인더가 실제로 어느 정도 전체 경로를 처리한다는 점도 주목할 가치가 있습니다. 파일을 일반 텍스트 문서로 드래그 해보십시오. 경로를 얻을 수 있습니다. 또는 복사하여 붙여 넣기를 시도해보십시오. 터미널에 붙여 넣기하면 붙여 넣기 판의 "털"풍미를 알 수 있습니다.