Я все еще изучаю правила здесь, поэтому, пожалуйста, скажите мне, если этот вопрос неуместен.
Фон
Я графический дизайнер. Я создал скрипт Apple Script, который сортирует файлы логотипов по папкам для создания пакета логотипов. Процесс может занять минуту или две, поэтому я хотел бы иметь возможность отображать индикатор выполнения при запуске этого скрипта Apple.
Я новичок в написании сценариев, но мне удалось собрать воедино что-то, что достигает основной цели сортировки логотипов.
Шаги:
Выберите папку с файлами
Сортировка файлов в соответствующие папки по имени файла
Удалить все пустые папки.
Проблема
Я не могу настроить отображение прогресса в этом скрипте Apple.
Исследование
Я прочитал документацию Apple об отображении прогресса здесь:
https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/DisplayProgress.html
Вот код, который они предоставляют:
set theImages to choose file with prompt "Please select some images to process:" of type {"public.image"} with multiple selections allowed
set theImages to choose file with prompt "Please select some images to process:" of type {"public.image"} with multiple selections allowed
-- Update the initial progress information
set theImageCount to length of theImages
set progress total steps to theImageCount
set progress completed steps to 0
set progress description to "Processing Images..."
set progress additional description to "Preparing to process."
repeat with a from 1 to length of theImages
-- Update the progress detail
set progress additional description to "Processing image " & a & " of " & theImageCount
-- Process the image
-- Increment the progress
set progress completed steps to a
-- Pause for demonstration purposes, so progress can be seen
delay 1
end repeat
-- Reset the progress information
set progress total steps to 0
set progress completed steps to 0
set progress description to ""
set progress additional description to ""
Я пытался реализовать это, но получаю ошибку.
Ошибка
Ошибка скрипта
Finder получил ошибку: не удалось установить общее количество шагов для 53.
Мой Apple Script
Я собираюсь опубликовать код перед попыткой добавить экранные проги.
tell application "Finder"
-- Gets the logo package folder from a prompt
set packageFolder to (choose folder with prompt "Please choose your logo package folder") as string
-- REVERSE JPG CLEANUP
delete (every file of folder packageFolder whose name contains "reverse-rgb-300.jpg")
delete (every file of folder packageFolder whose name contains "reverse-rgb-900.jpg")
-- Moves files from the logo package folder into their appropriate configuration subfolders
move (every file of folder packageFolder whose name contains "logo-") to folder (packageFolder & "Logo")
move (every file of folder packageFolder whose name contains "logotype-") to folder (packageFolder & "Logotype")
move (every file of folder packageFolder whose name contains "logoMark-") to folder (packageFolder & "Logo Mark")
-- LOGO FOLDER
-- Sort logo folder files into their appropriate color scheme folders
move (every file of folder (packageFolder & "Logo") whose name contains "fullColor") to folder (packageFolder & "Logo:01 Full Color")
move (every file of folder (packageFolder & "Logo") whose name contains "oneColor") to folder (packageFolder & "Logo:02 One Color")
move (every file of folder (packageFolder & "Logo") whose name contains "reverse") to folder (packageFolder & "Logo:03 Reverse")
-- FULL COLOR FOLDER ==========
-- Moves files from the 01 Full Color folder to their appropriate application folder
move (every file of folder (packageFolder & "Logo:01 Full Color") whose name contains "cmyk") to folder (packageFolder & "Logo:01 Full Color:Print")
move (every file of folder (packageFolder & "Logo:01 Full Color") whose name contains "pms") to folder (packageFolder & "Logo:01 Full Color:Print")
move (every file of folder (packageFolder & "Logo:01 Full Color") whose name contains "rgb") to folder (packageFolder & "Logo:01 Full Color:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logo:01 Full Color:Digital") whose name contains ".jpg") to folder (packageFolder & "Logo:01 Full Color:Digital:Bitmap")
move (every file of folder (packageFolder & "Logo:01 Full Color:Digital") whose name contains ".png") to folder (packageFolder & "Logo:01 Full Color:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logo:01 Full Color:Print") whose name contains "cmyk") to folder (packageFolder & "Logo:01 Full Color:Print:01 CMYK")
move (every file of folder (packageFolder & "Logo:01 Full Color:Print") whose name contains "pms-c") to folder (packageFolder & "Logo:01 Full Color:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logo:01 Full Color:Print") whose name contains "pms-u") to folder (packageFolder & "Logo:01 Full Color:Print:03 Pantone Uncoated")
-- ONE COLOR FOLDER ==========
-- Moves files from the 02 One Color folder to their appropriate application folder
move (every file of folder (packageFolder & "Logo:02 One Color") whose name contains "cmyk") to folder (packageFolder & "Logo:02 One Color:Print")
move (every file of folder (packageFolder & "Logo:02 One Color") whose name contains "pms") to folder (packageFolder & "Logo:02 One Color:Print")
move (every file of folder (packageFolder & "Logo:02 One Color") whose name contains "rgb") to folder (packageFolder & "Logo:02 One Color:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logo:02 One Color:Digital") whose name contains ".jpg") to folder (packageFolder & "Logo:02 One Color:Digital:Bitmap")
move (every file of folder (packageFolder & "Logo:02 One Color:Digital") whose name contains ".png") to folder (packageFolder & "Logo:02 One Color:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logo:02 One Color:Print") whose name contains "cmyk") to folder (packageFolder & "Logo:02 One Color:Print:01 CMYK")
move (every file of folder (packageFolder & "Logo:02 One Color:Print") whose name contains "pms-c") to folder (packageFolder & "Logo:02 One Color:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logo:02 One Color:Print") whose name contains "pms-u") to folder (packageFolder & "Logo:02 One Color:Print:03 Pantone Uncoated")
-- REVERSE FOLDER ==========
-- Moves files from the 03 Reverse folder to their appropriate application folder
move (every file of folder (packageFolder & "Logo:03 Reverse") whose name contains "cmyk") to folder (packageFolder & "Logo:03 Reverse:Print")
move (every file of folder (packageFolder & "Logo:03 Reverse") whose name contains "pms") to folder (packageFolder & "Logo:03 Reverse:Print")
move (every file of folder (packageFolder & "Logo:03 Reverse") whose name contains "rgb") to folder (packageFolder & "Logo:03 Reverse:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logo:03 Reverse:Digital") whose name contains ".jpg") to folder (packageFolder & "Logo:03 Reverse:Digital:Bitmap")
move (every file of folder (packageFolder & "Logo:03 Reverse:Digital") whose name contains ".png") to folder (packageFolder & "Logo:03 Reverse:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logo:03 Reverse:Print") whose name contains "cmyk") to folder (packageFolder & "Logo:03 Reverse:Print:01 CMYK")
move (every file of folder (packageFolder & "Logo:03 Reverse:Print") whose name contains "pms-c") to folder (packageFolder & "Logo:03 Reverse:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logo:03 Reverse:Print") whose name contains "pms-u") to folder (packageFolder & "Logo:03 Reverse:Print:03 Pantone Uncoated")
-- LOGO MARK FOLDER
-- Sort logo mark folder files into their appropriate color scheme folders
move (every file of folder (packageFolder & "Logo Mark") whose name contains "fullColor") to folder (packageFolder & "Logo Mark:01 Full Color")
move (every file of folder (packageFolder & "Logo Mark") whose name contains "oneColor") to folder (packageFolder & "Logo Mark:02 One Color")
move (every file of folder (packageFolder & "Logo Mark") whose name contains "reverse") to folder (packageFolder & "Logo Mark:03 Reverse")
-- FULL COLOR FOLDER ==========
-- Moves files from the 01 Full Color folder to their appropriate application folder
move (every file of folder (packageFolder & "Logo Mark:01 Full Color") whose name contains "cmyk") to folder (packageFolder & "Logo Mark:01 Full Color:Print")
move (every file of folder (packageFolder & "Logo Mark:01 Full Color") whose name contains "pms") to folder (packageFolder & "Logo Mark:01 Full Color:Print")
move (every file of folder (packageFolder & "Logo Mark:01 Full Color") whose name contains "rgb") to folder (packageFolder & "Logo Mark:01 Full Color:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logo Mark:01 Full Color:Digital") whose name contains ".jpg") to folder (packageFolder & "Logo Mark:01 Full Color:Digital:Bitmap")
move (every file of folder (packageFolder & "Logo Mark:01 Full Color:Digital") whose name contains ".png") to folder (packageFolder & "Logo Mark:01 Full Color:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logo Mark:01 Full Color:Print") whose name contains "cmyk") to folder (packageFolder & "Logo Mark:01 Full Color:Print:01 CMYK")
move (every file of folder (packageFolder & "Logo Mark:01 Full Color:Print") whose name contains "pms-c") to folder (packageFolder & "Logo Mark:01 Full Color:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logo Mark:01 Full Color:Print") whose name contains "pms-u") to folder (packageFolder & "Logo Mark:01 Full Color:Print:03 Pantone Uncoated")
-- ONE COLOR FOLDER ==========
-- Moves files from the 02 One Color folder to their appropriate application folder
move (every file of folder (packageFolder & "Logo Mark:02 One Color") whose name contains "cmyk") to folder (packageFolder & "Logo Mark:02 One Color:Print")
move (every file of folder (packageFolder & "Logo Mark:02 One Color") whose name contains "pms") to folder (packageFolder & "Logo Mark:02 One Color:Print")
move (every file of folder (packageFolder & "Logo Mark:02 One Color") whose name contains "rgb") to folder (packageFolder & "Logo Mark:02 One Color:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logo Mark:02 One Color:Digital") whose name contains ".jpg") to folder (packageFolder & "Logo Mark:02 One Color:Digital:Bitmap")
move (every file of folder (packageFolder & "Logo Mark:02 One Color:Digital") whose name contains ".png") to folder (packageFolder & "Logo Mark:02 One Color:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logo Mark:02 One Color:Print") whose name contains "cmyk") to folder (packageFolder & "Logo Mark:02 One Color:Print:01 CMYK")
move (every file of folder (packageFolder & "Logo Mark:02 One Color:Print") whose name contains "pms-c") to folder (packageFolder & "Logo Mark:02 One Color:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logo Mark:02 One Color:Print") whose name contains "pms-u") to folder (packageFolder & "Logo Mark:02 One Color:Print:03 Pantone Uncoated")
-- REVERSE FOLDER ==========
-- Moves files from the 03 Reverse folder to their appropriate application folder
move (every file of folder (packageFolder & "Logo Mark:03 Reverse") whose name contains "cmyk") to folder (packageFolder & "Logo Mark:03 Reverse:Print")
move (every file of folder (packageFolder & "Logo Mark:03 Reverse") whose name contains "pms") to folder (packageFolder & "Logo Mark:03 Reverse:Print")
move (every file of folder (packageFolder & "Logo Mark:03 Reverse") whose name contains "rgb") to folder (packageFolder & "Logo Mark:03 Reverse:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logo Mark:03 Reverse:Digital") whose name contains ".jpg") to folder (packageFolder & "Logo Mark:03 Reverse:Digital:Bitmap")
move (every file of folder (packageFolder & "Logo Mark:03 Reverse:Digital") whose name contains ".png") to folder (packageFolder & "Logo Mark:03 Reverse:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logo Mark:03 Reverse:Print") whose name contains "cmyk") to folder (packageFolder & "Logo Mark:03 Reverse:Print:01 CMYK")
move (every file of folder (packageFolder & "Logo Mark:03 Reverse:Print") whose name contains "pms-c") to folder (packageFolder & "Logo Mark:03 Reverse:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logo Mark:03 Reverse:Print") whose name contains "pms-u") to folder (packageFolder & "Logo Mark:03 Reverse:Print:03 Pantone Uncoated")
-- LOGOTYPE FOLDER
-- Sort logotype folder files into their appropriate color scheme folders
move (every file of folder (packageFolder & "Logotype") whose name contains "fullColor") to folder (packageFolder & "Logotype:01 Full Color")
move (every file of folder (packageFolder & "Logotype") whose name contains "oneColor") to folder (packageFolder & "Logotype:02 One Color")
move (every file of folder (packageFolder & "Logotype") whose name contains "reverse") to folder (packageFolder & "Logotype:03 Reverse")
-- FULL COLOR FOLDER ==========
-- Moves files from the 01 Full Color folder to their appropriate application folder
move (every file of folder (packageFolder & "Logotype:01 Full Color") whose name contains "cmyk") to folder (packageFolder & "Logotype:01 Full Color:Print")
move (every file of folder (packageFolder & "Logotype:01 Full Color") whose name contains "pms") to folder (packageFolder & "Logotype:01 Full Color:Print")
move (every file of folder (packageFolder & "Logotype:01 Full Color") whose name contains "rgb") to folder (packageFolder & "Logotype:01 Full Color:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logotype:01 Full Color:Digital") whose name contains ".jpg") to folder (packageFolder & "Logotype:01 Full Color:Digital:Bitmap")
move (every file of folder (packageFolder & "Logotype:01 Full Color:Digital") whose name contains ".png") to folder (packageFolder & "Logotype:01 Full Color:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logotype:01 Full Color:Print") whose name contains "cmyk") to folder (packageFolder & "Logotype:01 Full Color:Print:01 CMYK")
move (every file of folder (packageFolder & "Logotype:01 Full Color:Print") whose name contains "pms-c") to folder (packageFolder & "Logotype:01 Full Color:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logotype:01 Full Color:Print") whose name contains "pms-u") to folder (packageFolder & "Logotype:01 Full Color:Print:03 Pantone Uncoated")
-- ONE COLOR FOLDER ==========
-- Moves files from the 02 One Color folder to their appropriate application folder
move (every file of folder (packageFolder & "Logotype:02 One Color") whose name contains "cmyk") to folder (packageFolder & "Logotype:02 One Color:Print")
move (every file of folder (packageFolder & "Logotype:02 One Color") whose name contains "pms") to folder (packageFolder & "Logotype:02 One Color:Print")
move (every file of folder (packageFolder & "Logotype:02 One Color") whose name contains "rgb") to folder (packageFolder & "Logotype:02 One Color:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logotype:02 One Color:Digital") whose name contains ".jpg") to folder (packageFolder & "Logotype:02 One Color:Digital:Bitmap")
move (every file of folder (packageFolder & "Logotype:02 One Color:Digital") whose name contains ".png") to folder (packageFolder & "Logotype:02 One Color:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logotype:02 One Color:Print") whose name contains "cmyk") to folder (packageFolder & "Logotype:02 One Color:Print:01 CMYK")
move (every file of folder (packageFolder & "Logotype:02 One Color:Print") whose name contains "pms-c") to folder (packageFolder & "Logotype:02 One Color:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logotype:02 One Color:Print") whose name contains "pms-u") to folder (packageFolder & "Logotype:02 One Color:Print:03 Pantone Uncoated")
-- REVERSE FOLDER ==========
-- Moves files from the 03 Reverse folder to their appropriate application folder
move (every file of folder (packageFolder & "Logotype:03 Reverse") whose name contains "cmyk") to folder (packageFolder & "Logotype:03 Reverse:Print")
move (every file of folder (packageFolder & "Logotype:03 Reverse") whose name contains "pms") to folder (packageFolder & "Logotype:03 Reverse:Print")
move (every file of folder (packageFolder & "Logotype:03 Reverse") whose name contains "rgb") to folder (packageFolder & "Logotype:03 Reverse:Digital")
-- Moves files from the digital application folder to the bitmap folder
move (every file of folder (packageFolder & "Logotype:03 Reverse:Digital") whose name contains ".jpg") to folder (packageFolder & "Logotype:03 Reverse:Digital:Bitmap")
move (every file of folder (packageFolder & "Logotype:03 Reverse:Digital") whose name contains ".png") to folder (packageFolder & "Logotype:03 Reverse:Digital:Bitmap")
-- Moves files from the print application folder to their appropriate color gamut folder
move (every file of folder (packageFolder & "Logotype:03 Reverse:Print") whose name contains "cmyk") to folder (packageFolder & "Logotype:03 Reverse:Print:01 CMYK")
move (every file of folder (packageFolder & "Logotype:03 Reverse:Print") whose name contains "pms-c") to folder (packageFolder & "Logotype:03 Reverse:Print:02 Pantone Coated")
move (every file of folder (packageFolder & "Logotype:03 Reverse:Print") whose name contains "pms-u") to folder (packageFolder & "Logotype:03 Reverse:Print:03 Pantone Uncoated")
end tell
-- Delete any empty folders
tell application "Finder"
set posixPath to quoted form of POSIX path of packageFolder
do shell script "find " & posixPath & " -name '.DS_Store' -type f -delete && find " & posixPath & " -empty -type d -delete"
display alert "Congratulations! Your logo package is complete."
end tell
Я понимаю, если это слишком много, чтобы спросить, но я знаю, что не смогу экстраполировать решение из краткого фрагмента кода с моим текущим уровнем квалификации на этой арене.
Чтобы переформулировать проблему, я просто пытаюсь отобразить индикатор выполнения во время работы этого скрипта.
Спасибо всем!