実行中のApplescriptに信号を送る方法

実行中のApplescriptに信号を送る方法

基本的にループの中にループがあるスクリプトを実行しています。このスクリプトに内側のループから抜け出すように指示する方法が必要です。

repeat
   doxyz
   repeat
      doSoreWork
      if signalPresent then
         exit repeat
      end if
   end repeat
end repeat

検索してみましたが、AS にはそのような機能がないようです。考えられる 1 つの方法は、ファイルを使用することです。内部ループでファイルの存在を監視し、見つかった場合はループを中断できます。これは粗雑で気に入りません。もっと良い方法はないでしょうか。

編集:

私は見てきましたループを中断するためにシグナルを使用する Bash スクリプト今のところ、まだ見苦しいですが、かなりうまく機能しています :)

答え1

whileを使ってループの先頭で何かが存在するかどうかをテストすることができます。

たとえば、デスクトップに「tester.rtf」というファイルがあれば、音声でカウントされます。

set fileTarget to (path to desktop folder as text) & "tester.rtf" 
tell application "System Events"
    set x to 1
    repeat while (exists file fileTarget)
        set x to x + 1
        say x
    end repeat
end tell

関連情報