Ссылка на ваш файл рабочего процесса не сработала, но все в порядке - спасибо за попытку поделиться им в любом случае, но в этом случае я могу работать без него, так как на самом деле я собираюсь сделать это с нуля:
В зависимости от того, как ваш рабочий процесс будет настроен на получение входных данных, вы можете удалить действие Получить указанные элементы поиска и разрешитьнапример, рабочий процесс, выполняемый как Service , чьим вводом будет папка, содержащая изображения для обработки.Как вы сказали, это была ваша папка Downloads , содержащая изображения, я чувствовал, что вряд ли вы настроите рабочий процесс для работы в качестве действия папки .
В целях тестирования вы можете сохранить действие Получить указанные элементы поиска и заменить папку Пример , которую я там вставил, на папку Загрузки .
Вот код из действия Запуск AppleScript для копирования / вставки:
on run {input, parameters}
# input will be the folder containing the images, e.g. the Downloads folder
set [here] to the input
set suffix to "preview.jpg"
set my text item delimiters to {pi, space & suffix}
tell application "Finder"
set jpgs to the name of every file in here whose name ends with the suffix
repeat with jpg in jpgs
set this to the text items of jpg as text
set there to (a reference to the folder named this in here)
if not (there exists) then set there ¬
to make new folder in here ¬
with properties {name:this}
move the file named jpg in here to there
end repeat
end tell
end run
Не имеет значения, существуют ли папки назначения: если они существуют, изображениебудет перемещен в соответствующий;для тех, кто этого не делает, папка создается до перемещения изображения.
Обновление в ответ на комментарии
① Иногда у меня есть строка между «предварительным просмотром» и расширением .jpg
или .png
② Я также хотел бы переместить заполненные папки в новую папку /Users/sebba/BLENDER/BLENDS
Учитывая изменчивость ваших имен файлов, которые вы сейчас используетераскрыто, я думаю, что для обработки файлов проще использовать сценарий оболочки вместо AppleScript.
Удалите действие Запуск AppleScript и вставьте действие Выполнить сценарий оболочки со следующими параметрами: Оболочка : bin/bash
, Пропуск ввода: as arguments
.
Удалите любой пример кода, который появляется в поле редактирования, и введите егоcode:
cd "$1"
folder=()
while read -r file
do
folder+=("$(egrep -io '^.+ \d{3}' <<<"$file")")
[[ -d "${folder[@]: -1}" ]] || mkdir "${folder[@]: -1}"
mv -v "$file" "${folder[@]: -1}"
done <<<"$( ls | egrep -i '^.+ \d{3} preview.*\.(jpg|png)' )"
mv -v "${folder[@]}" "/Users/sebba/BLENDER/BLENDS"
Используется совпадение регулярного выражения для выбора имен файлов, которые:
- Начинаются абсолютно с чего угодно (но не с ничего);затем
- Далее следует пробел, точно три цифры, пробел, затем слово «предварительный просмотр»;затем
- Следуйте с чем угодно (включая ничто);затем
- Заканчивается на ".jpg" или ".png".
Следовательно, он перемещает следующие файлы в указанную папку (папка создается, если она несуществуют и файлы с одинаковыми именами перезаписываются):
My image_file 001 preview.foo bar.jpg
→ My image_file 001/
004 2 001 preview.png
→ 004 2 001/
Но следующие файлы не будут затронуты :
001 preview.png
My image_file 01 preview.jpg