AppleScript - Como pesquisar o resultado de uma string?

AppleScript - Como pesquisar o resultado de uma string?

Estou tentando pesquisar o resultado de um AppleScript para determinar se uma string aparece.

Executando este código:

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

Resulta em:

{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"}

Agora gostaria de pesquisar este resultado para ver se "Arquivos Sincronizados" está presente. No entanto, correndo

 myResult contains "Files Synced"

Me dá uma impressão de todo o resultado novamente. Como faço para pesquisar esse resultado para determinar se uma string está presente?

Responder1

Você obteve a mesma impressão nas duas vezes porque não removeu a return myResultlinha após a primeira execução. returnsempre encerrará um script quando atingir este comando.

▸ Além disso, altere isto:

    set myStatus to menu items of menu 1

para isso:

    set myResult to name of menu items of menu 1

▸ Exclua esta linha:

    get menu items of menu 1

e esta linha:

    set myResult to result

(Eles literalmente não estão fazendo nada.)

Seu script final ficará assim:

    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

que retornará trueou false.

Alternativamente, sem as declarações explícitas de variáveis ​​(e usando a variável predefinida 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

Se precisar de algum esclarecimento ou tiver alguma dúvida, não hesite em deixar um comentário e entrarei em contato com você. Considere selecionar esta como sua resposta aceita se isso ajudar a resolver seu problema.

informação relacionada