Чтобы вывести текст из буфера обмена, используйте (clipboard as text)
. Буфер обмена может содержать практически все, даже несколько объектов, в разных форматах, поэтому as text
дает вам строку для работы.
И обратите внимание: «Описание» является частью некоторой существующей терминологии appleScript « ', по крайней мере на Ма c у меня прямо здесь, поэтому я меняю ваш идентификатор на desc
здесь:
activate application "Grids"
delay 2
tell application "System Events"
keystroke "a" using command down
delay 0.25
keystroke "c" using command down
delay 0.25
set desc to the clipboard as text
end tell
set out to {}
set tids to AppleScript's text item delimiters
set AppleScript's text item delimiters to " "
repeat with anItem in (text items of desc)
set str to (anItem as string)
if (str does not contain "#") then
set end of out to str
end if
end repeat
set outStr to out as string
set AppleScript's text item delimiters to tids
return outStr
Этот код просто возвращает текст, который вы находясь в поиске. Он не вставляет ухоженную строку или делает что-то еще интересное.
Я предполагаю, что вы собираетесь сказать Системным Событиям вставить его через cmd-v. (Не забудьте set the clipboard to outStr
перед вставкой!)
AppleScript's text item delimiters
позволяет разбивать строку и собирать ее, используя пробел (или любой другой токен, который вы sh). По соображениям гигиены кода целесообразно сохранить его перед изменением, а затем сбросить его до исходного значения, как показано ниже, в противном случае в сценариях, которые ожидают, что оно будет иметь значение по умолчанию, могут происходить странные вещи.