2014-11-15 4 views
2

bash 스크립트를 사용하여 특정 찾기 윈도우를 닫으려고합니다 (MacOSX를 사용 중입니다). 불행히도 첫 번째 창이 열리지 않는 즉시 스크립트가 종료됩니다. (예 : "통신"이라는 제목의 창이 열리지 않고 "편집자"창이 열렸으며 창을 닫을 수 없습니다). 통신 제목의 창을 열면 첫 번째 명령이 실패한 후에도 닫히지 만 아무 것도하지 않습니다. 내가 출구를 시도하고 오류가 발생하여 "set -e"를 꺼내지만 아무것도 작동하지 않는 것 같습니다.AppleScript에서 "Can not get window"오류가 발생했습니다.

#!/bin/bash 
set -e 
osascript <<EOF 
tell application "Finder" 
    close window "Communication" 
    close window "Editors" 
    close window "Gaming" 
    close window "Music" 
    close window "Technical" 
    close window "Text Editors" 
    close window "Utilites" 
    close window "Camera" 
    close window "External" 
    close window "TAB Actual" 
end tell 

그것은 나에게

error: 24:57: execution error: Finder got an error: Can't get window <"first window found to not be open">. (-1728) (1) 

이 무엇을 의미하는 경우 나도 몰라를 제공하지만, 코드가 자동화를 통해 실행되고 : 여기 내 스크립트입니다.

저를 도울 수있는 사람 덕분에, 그렇습니다. 나는 배시를하기가 아주 쉽습니다. AppleScript로 언어 설명서의 제어 명령에 대한

#!/bin/bash 
set -e 
osascript <<EOF 
tell application "Finder" 
    ignoring application responses 
    close window "Communication" 
    close window "Editors" 
    # More windows here... 
    end ignoring 
end tell 

자세한 내용 :

+0

가능하면 창문이 열렸을 때이를 감지하고 빈 시간이 지나면 열려있는 창을 개별적으로 닫는 방법을 찾으십시오. –

+0

bash에 오신 것을 환영합니다! OSX에 익숙하지 않지만 bash 관점에서, 1) iterm에서 실행하거나 어떤 일이 벌어지는 지 알 수 있도록 2) set -x를 스크립트에 추가하면 유용한 디버그가 많이 인쇄됩니다 당신의 물건이 얼마나 멀리 있는지를 포함하는 정보 3) << EOF 표기법은 보통 EOF 문자열에 도달 할 때까지 계속된다는 것을 의미합니다. 아마도 스크립트에서도 필요합니다. 재미있어! – fquinner

+0

이것은 AppleScript로 bash 관련 질문이 아닙니다. Bash는 오직 하나의 명령,'osascript' 만 실행합니다. 그래서'osascript' 오류가 무의미 할 때 무엇을합니다. 문제는'close window' 명령문 중 하나라도 실패하면'osascript'가 멈추므로 문제를 해결해야한다는 것입니다. –

답변

0

을위한 :

set windowNames to {"Communication", "Editors", "Gaming"} 

tell application "Finder" 
    repeat with wName in windowNames 
     try 
      close window wName 
     end try 
    end repeat 
end tell 
+0

나는 너와 마찬가지로 노력 했어. 감사! –