2016-11-16 7 views
0

У меня есть много файлов без названия TextEdit. Я хотел бы использовать applescript для сохранения каждого, используя в качестве имени текст верхней строки каждого документа.Applescript: Вставка текста буфера обмена в диалоговое окно «Открыть/Сохранить»

Ниже выберете и скопируйте первую строку документа (не изящно, но она работает), но я не могу понять, как вставить буфер обмена в диалоговое окно сохранения (и затем нажать «сохранить») , Может ли кто-нибудь помочь?

tell application "TextEdit" to activate 
tell application "TextEdit" 

tell application "System Events" to key code 126 using command down 
tell application "System Events" to key code 125 using shift down 
tell application "System Events" to key code 8 using command down 


end tell 
+0

просто использовать «Сохранить как» инструкции, обеспечивая имя и путь. – pbell

+0

Имя находится в буфере обмена. Я хочу автоматизировать именование таким образом. – Jimmbo

ответ

0

Есть 2 способа сделать:

1) метод, использующий графический интерфейс сценариев: это то, что вы начали делать. Вы имитируете события клавиатуры, такие как пользователь. Это не рекомендуется в основном по трем причинам: обычно это медленно (вам нужно добавить задержки, чтобы оставить время для открытого окна системы, закрыть их, ..). Во время сценария, если пользователь ошибочно нажимает клавишу/мышь, ваш скрипт не сработает. И, наконец, вы вряд ли зависите от пользовательского интерфейса приложения: если редактор (здесь Apple с TextEdit) что-то изменит, как короткий ключ, ваш скрипт больше не будет работать.

Несмотря на это, если вы все еще хотите использовать этот способ, вот скрипт, который делает это за вас. Я рекомендую вам добавлять комментарии так же, как и я (как помнить, что код ключа 8 является «c»!). Я добавил несколько дополнительных опций, чтобы выбрать путь для сохранения (перейти в домашнюю папку, ввести специальный путь, ...). До вас использовать их или нет:

tell application "TextEdit" 
activate 
tell application "System Events" 
    key code 126 using command down -- command up (cursor at start) 
    key code 125 using shift down -- shift down (select 1st line) 
    keystroke "c" using command down -- command C (copy) 
    keystroke "s" using command down -- open save dialog 
    delay 0.5 -- to let save as dialog time to open 
    keystroke "v" using command down -- paste the title from clipboard 

    -- other options 
    -- keystroke "h" using {command down, shift down} -- go home directory 
    delay 0.5 
    keystroke "g" using {command down, shift down} -- go to dialog 
    delay 0.5 
    keystroke "Desktop/Sample" -- path from Documents folder to Sample folder on Desktop 
    delay 0.5 
    keystroke return -- close the go to dialog 
    delay 0.5 

    keystroke return -- close the save as dialog 
end tell 
end tell 

2) метод, использующий инструкции Applescript. Обычно это намного более короткий, более элегантный скрипт, гораздо быстрее запускается, и пользователь не может его сломать во время выполнения. Сценарий ниже аналогичен сценарию выше: он выбирает первую текстовую строку и сохраняет документ с этим заголовком. Строка 1 определяет папку, куда сохранить:

set myPath to (path to desktop folder) as string -- path where to save file 
tell application "TextEdit" 
activate 
tell front document 
    set myTitle to first paragraph 
    set myTitle to text 1 thru -2 of myTitle -- to remove the return at end of paragraph 
    save in (myPath & myTitle) 
end tell 
end tell 

Я надеюсь, что это помогает

Смежные вопросы