AppleScript - 文字列の結果を検索するにはどうすればいいですか?

AppleScript - 文字列の結果を検索するにはどうすればいいですか?

AppleScript の結果を検索して、文字列が表示されるかどうかを判断しようとしています。

このコードを実行すると:

tell application "System Events" to tell process "Box Sync" to ¬
    tell menu bar item 1 of menu bar 2
        click
        get menu items of menu 1
        set myStatus to menu items of menu 1
        set myResult to result
        return myResult             
    end tell

結果:

{menu item "Files Synced" of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item 2 of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item "Pause" of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item 4 of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item "Open Box Sync Folder" of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item "Open Box.com" of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item 7 of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item "Preferences…" of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item 9 of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events", menu item "Quit" of menu 1 of menu bar item 1 of menu bar 2 of application process "Box Sync" of application "System Events"}

この結果を検索して「Files Synced」があるかどうかを確認したいと思います。ただし、実行中

 myResult contains "Files Synced"

結果全体のプリントアウトが再度表示されます。この結果を検索して文字列が存在するかどうかを確認するにはどうすればよいですか?

答え1

return myResult最初の実行後に行を 削除しなかったため、2 回とも同じ出力が表示されました。returnこのコマンドに到達すると、スクリプトは常に終了します。

▸ さらに、これを変更してください:

    set myStatus to menu items of menu 1

これに:

    set myResult to name of menu items of menu 1

▸ この行を削除します:

    get menu items of menu 1

そしてこの行:

    set myResult to result

(彼らは文字通り何もしていません。)

最終的なスクリプトは次のようになります。

    tell application "System Events" to tell process "Box Sync" to ¬
        tell menu bar item 1 of menu bar 2
            click
            set myResult to name of menu items of menu 1
            myResult contains "Files Synced"
        end tell

trueまたは を返しますfalse

あるいは、明示的な変数宣言なしで(AppleScript の定義済みresult変数を使用して)次のようにします。

    tell application "System Events" to tell process "Box Sync" to ¬
        tell menu bar item 1 of menu bar 2
            click
            get the name of menu items of menu 1
            result contains "Files Synced"
        end tell

ご不明な点やご質問がございましたら、遠慮なくコメントを残してください。折り返しご連絡いたします。問題解決に役立つ場合は、これを承認済みの回答として選択することを検討してください。

関連情報