AppleScript - Как найти результат для строки?

356
ace973

Я пытаюсь найти результат 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 

Результаты в:

 

Теперь я хотел бы найти этот результат, чтобы увидеть, присутствует ли «Синхронизированные файлы». Однако работает

 myResult contains "Files Synced" 

Дает мне распечатку всего результата снова. Как мне выполнить поиск этого результата, чтобы определить, присутствует ли строка?

1

1 ответ на вопрос

0
CJK

Вы получили одну и ту же распечатку оба раза, потому что вы не удалили return myResultстроку после первого запуска. 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.

В качестве альтернативы, без явных объявлений переменных (и с использованием предопределенной resultпеременной AppleScript ):

 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 

Если вам нужны какие-либо разъяснения или у вас есть дополнительные вопросы, не стесняйтесь оставлять комментарии, и я свяжусь с вами. Пожалуйста, рассмотрите возможность выбора этого ответа в качестве принятого, если это поможет решить вашу проблему.

Похожие вопросы