2017-05-23 12 views
1

단순히 "또는"연산자를 사용하면 "theMessage"변수에 "x"또는 "y"가 포함되어 있는지 확인할 수 있다고 생각했습니다. 명백하게. AppleScript X는 용어 목록에 포함되어 있습니다

나는이 시도 :

else if theMessage contains {"display", "screen"} then 
--sleep computer's display 
    do shell script "pm displaysleepnow" 
    set theResponse to "Now sleeping the computer's display" 

나는 서브 루틴이 용어 사업자와용어가는 얻을 수 있다면 좋을 것 그래서 아마도이 많이 작성됩니다. .. 예.

if theMessage contains {....} not {....} 

답변

0

는이

on containsItems from qList against theText 
    repeat with anItem in qList 
     if theText contains anItem then return true 
    end repeat 
    return false 
end containsItems 

처럼 반복 루프, 뭔가를 사용하고 난하지 AppleScript를 같이 할 이유가 그것

set theMessage to "ashlfkjhalksjdhfscreenwperoivj" 
set queryList to {"display", "screen"} 
set doesContain to containsItems from queryList against theMessage 
+0

을 사용해야합니다. 지나치게 복잡한 것 같지 않니? – yeeeeee

+0

그래서 여러 번 비교할 때마다 예를 들어 theMessage 대신에 x와 y가 포함되어 있습니다. 먼저 변수로 설정해야합니까? 왜 단 한 번의 용어로 그렇게 쉬운가요? 그러나 두 가지 이상의 용어를 비교할 때이 모든 것을 요구합니다. – yeeeeee

+0

예, 처리기는 'theMessage'에 x ** 또는 ** y가 포함되어 있는지 확인합니다. 1 : 1을 확인하기 때문에 하나의 항목에 대해 쉽습니다. 여러 항목으로 1 : n을 확인해야합니다. – vadian