2016-07-30 4 views
1

У меня есть правильно работающий индикатор выполнения, но когда я смешиваю его с некоторыми задачами, например, копируя файлы здесь, он дает мне ошибку и не увеличивается, он останавливается после первой копии, любая идея, где проблема?Ярлык индикатора не работает

Вот код:

tell application "Finder" 
    set selected_items to selection 
    set fileCount to length of selected_items 
end tell 

set progress total steps to fileCount 
set progress completed steps to 0 
set progress description to "Processing Images..." 
set progress additional description to "Preparing to process." 
set a to 1 

tell application "Finder" 
    set theFolder to POSIX file "/Users/graphics/Desktop/1" 
    repeat with x in selected_items 
     set progress additional description to "Processing image " & a & " of " & fileCount 
     duplicate x to theFolder 
     set progress completed steps to a + 1 
     set a to a + 1 
    end repeat 
end tell 
+0

1. Вы сохраните его как апплет? 2. Может быть, выбор Finder просто содержит ваш скрипт после нажатия на него? Сделайте «диалог отображения x как строку» перед повторением, чтобы быть уверенным 3. Расскажите нам больше об ошибках, которые вы получили. – ShooTerKo

+0

Я сохранил его как приложение, он просто остановился после первого, это весь скрипт, который вы могли бы запустить, и увидеть ошибку, если хотите –

+0

Как начать сценарий? Вы попробовали пункт 2 моего ответа? – ShooTerKo

ответ

1

Вот сценарий, пожалуйста, прочитайте примечания ниже:

tell application "Finder" 
    set selected_items to selection 
    set fileCount to count of selected_items 
end tell 

set progress total steps to fileCount 
set progress completed steps to 0 
set progress description to "Processing Images..." 
set progress additional description to "Preparing to process." 
set a to 1 

repeat with x in selected_items 
    set progress additional description to "Processing image " & a & " of " & fileCount 
    tell application "Finder" 
     set theFolder to (path to desktop folder as string) & "1:" 
     duplicate x to theFolder with replacing 
    end tell 
    tell me to set progress completed steps to a + 1 
    set a to a + 1 
end repeat 

Я переместил set progress... обработчиков из tell application "Finder" -блока, поскольку приложение " Finder "не знает о шаге выполнения и скорректировал целевую папку в соответствии с любой папкой рабочего стола. Он отлично работает сейчас, если

  • Сценарий сохраняется как апплета
  • Апплет запускается через Dock

Это происходит потому, что

  • Редактор сценариев не может позаботиться о разных потоках для обновления индикатора выполнения при запуске внутри скрипта Редактор

  • Если вы запустите апплет с помощью двойного щелчка внутри Finder, сам апплет станет выбором, просто потому, что вы нажмете его! Запуск с док-станции решает эту проблему!

Весело, Michael/Hamburg

+0

На самом деле папка назначения - это только владелец места, я все равно должен изменить ее в другом месте, и моя цель с помощью этого скрипта заключается в том, чтобы поместить его в службу, чтобы я мог получить доступ, щелкнув правой кнопкой мыши на выбранных файлах, я попробую ваше решение –

+0

Спасибо, что это работает –

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