Войти

Или войди с помощью

Учимся работать с Automator. Сортировка файлов по папкам

Виктор Колышев avatar |
Учимся работать с Automator. Сортировка файлов по папкам

В прошлый раз мы подняли тему мощнейшего инструмента в OSX — Automator. В комментариях я попросил указать задачи, которые бы Вам хотелось автоматизировать – получил оживленную реакцию. Задачи нашлись, начнем их решать!

Для справки. Отто – именно так зовут робота, который изображен на иконке приложения Automator.

На сегодня я отобрал простую и в тоже время распространённую задачу. Мы потренируемся автоматически сортировать содержимое папки Downloads, а затем сможем повторять эту задачу для любых других папок и с разными целями.

Задача

Необходимо автоматически переносить все файлы, загружаемые в папку Downloads, в отдельные папки, соответствующие их типу.

Возможные типы файлов:

  • изображения
  • документы
  • архивы
  • видео
  • торренты

Решение

К сожалению, Automator не поддерживает операции ветвления, т.е. создать конструкцию ЕСЛИ → ТО → ИНАЧЕ нельзя. Поэтому придется делать достаточно длительную линейную конструкцию, которая последовательно решит задачу.

Сортировку будем проводить по следующему принципу. Есть папка-основа Downloads, в ней созданы подпапки для всех типов данных: Изображения, Архивы, Видео и т.д.

1. Создаем новый автомат — Действие папки. Для решения задачи потребуются компоненты из раздела Файлы и папки и Утилиты, конкретно:

  • Установить значение переменной
  • Получить значение переменной
  • Получить указанные объекты Finder
  • Получить содержимое папок
  • Фильтровать объекты Finder
  • Переместить объекты Finder

as_arcSort

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

2. Создаем конструкцию как на изображении. Рассказываю по порядку что делаем:

  1. Чтобы добавить универсальности данному автомату, используем переменную, назовем её Целевая папка, в неё будет записываться информация о том, в какой папке мы собираемся делать сортировку данных.
  2. Получаем содержимое целевой папки, с которым в дальнейшем будем работать.
  3. Устанавливаем фильтр на содержимое, для получения списка файлов. Тут есть нюанс, для изображений можем легко выбрать предустановленный тип, а вот для архивов придется прописывать расширения самостоятельно.

    as_arcFilter

  4. Перемещаем объекты в целевую директорию.
  5. Добавляем блок чтения нашей переменной. Обязательно выставляя в параметрах значение: Игнорировать входные данные этого действия, иначе могут быть захвачены данные из прошлого шага итерации.
  6. Переходим к п.2, цикл повторять для каждого типа данных.

Совет 1: для ускорения процесса нахождения необходимых компонентов, можно использовать поиск в верхней части интерфейса автоматора. Сами компоненты быстро добавляются двойным кликом по ним.

as_quickFind

Совет 2: созданные автоматы можно добавлять к любой папке, просто кликнув по ней правой кнопкой и выбрав пункт Службы → Настройка действий папки…

as_folderAddAction

Заключение

Рассмотрен еще один вариант использования мощнейшего инструмента, и я продолжаю внимательно изучать комментарии о том, что автоматизировать еще. Предлагайте!

P.S. Ваши вопросы о сортировке почты я записал и работаю над статьёй.

34
undefined
iPhones.ru
В прошлый раз мы подняли тему мощнейшего инструмента в OSX — Automator. В комментариях я попросил указать задачи, которые бы Вам хотелось автоматизировать – получил оживленную реакцию. Задачи нашлись, начнем их решать! Для справки. Отто – именно так зовут робота, который изображен на иконке приложения Automator. На сегодня я отобрал простую и в тоже время...

Войди и оставь комментарий

Или войди с помощью

<- Назад Забыли пароль? Войти
  1. emeric avatar
    emeric 3 мая 2015
    2

    Ну вот…все материалы только на русском языке…а если я юзаю Mac на английском? :)

    Виктор Колышев avatar
    6

    @emeric, ну если у вас интерфейс на английском, тогда видимо проблем с языком нет, сможете легко перевести :)

    Dexfir avatar
    Dexfir3 мая 2015
    4

    @Виктор Колышев, ну вот, а если я юзаю Мак на китайском? :)
    Какой вы непредусмотрительный..

    Войди на сайт, чтобы ответить
    Ответить
  2. Егорка avatar
    Егорка 3 мая 2015
    12

    Подобные статьи-уроки считаю крайне полезными и интересными, нежели отчеты о доходах разных команий, слухах и тому подобного. Автоматор штука интересная судя по всему! Будем следить за продолжением!!

    Войди на сайт, чтобы ответить
    Ответить
  3. upup avatar
    upup 3 мая 2015
    0

    А если это торрент файл, то он докатается сначала, а потом переместиться в другую папку?

    Виктор Колышев avatar
    3

    @upup, под торрент файлом подразумевается файл с расширением *.torrent
    Если настроить автоматический перенос, могут быть проблемы + все торренто-качалки умеют сами перемещать файлы в указанную папку.

    zrcl avatar
    zrcl5 мая 2015
    0

    @upup, Предлагаю вам решение: мюТоррент не умеет сортировать файлы, но умеет отправлять скачанные файлы в другую папку, начните сортировку автоматором в ней, так же, естественно, торрент может держать те файлы которые он качает в выбранной вами папке. Я сейчас пытаюсь заставить мюТоррент держать качаемые файлы в папке /Downloads/InProgress/ (туда же и .torrent кидаются автоматором, а мюТоррент их оттуда берет), готовые файлы кидать в /Downloads и оттуда их сортировать по остальным папкам.

    Войди на сайт, чтобы ответить
    Ответить
  4. D@rkmind avatar
    D@rkmind 3 мая 2015
    0

    А можно немного подробнее насчет переменной? Не очень понятно как она используется:
    – Какое значение проставляется в эту переменную? Почему именно оно (на workflow просто инструкция – установить значение переменной. А какое значение непонятно)
    – Как эта переменная дальше используется? В каких инструкциях? На схеме видно только что она устанавливается. А на что влияет не очевидно

    Виктор Колышев avatar
    0

    @D@rkmind, переменная – это единица хранения данных, в автоматоре она универсальная и может хранить как отдельный символ, так и длинные коллекции.
    В переменную подставляется значение действия, которое предшествовало её вызову, т.е. если это действие выбор папки, то в неё поместится путь к этой папке вместе с её названием. В нашем примере мы помещаем в неё нашу целевую папку, чтобы иметь возможность в дальнейшем к ней обращаться.

    На схеме она вызывается повторно после завершения действий с первым типом данных, в нашем случае Картинки. Это позволяет опросить папку повторно не учитывая те файлы, которые уже были перемещены.

    D@rkmind avatar
    D@rkmind3 мая 2015
    0

    @Виктор Колышев, Спасибо. Теперь более понятно. А где мы к ней обращаемся? Какая инструкция использует ее значение?

    Виктор Колышев avatar
    0

    @D@rkmind, её значение используется любой конструкцией, которая расположена сразу за вызовом данной переменной.
    Например, в нашем примере мы указали что в переменную требуется записать нашу начальную папку. В следующий раз мы вызываем нашу переменную, а сразу за ней компонент Получить содержимое папки. Т.е. переменная позволяет получить содержимое именно нашей папки, а не какой-то другой, так как целевая папка могла измениться из-за прошлой операции, например копирования/перемещения данных в другую папку.

    Войди на сайт, чтобы ответить
    Ответить
  5. D@rkmind avatar
    D@rkmind 3 мая 2015
    0

    Почему то инструкцию “Filter Finder Items” не удается заставить работать. Все остальное нормально – если ее убрать, то все файлы из папки Downloads перемещаются в указанную директорию.
    А вот если добавить Filter Finder Items, то никакие не перемещаются. Настроенно вроде как в статье (да и должно бы работать):
    “All of the following are true”. “Kind” “is” “image”

    Но ни jpg, ни png не перемещаются. Опять же, если Фильтр убрать, то перемещаются

    D@rkmind avatar
    D@rkmind3 мая 2015
    0

    че-то такое ощущение, что этот фильтр не работает от слова вообще. Пробовал менять All на Any. Пробовал менять image на text и подсовывать ему .txt файлы. Пробовал делать “File extension is txt”. Ни в каком виде не прокатывает. Может Йосэмити с ума сходит?

    Виктор Колышев avatar
    0

    @D@rkmind, есть подозрение, что где-то что-то пропускаете. Можно провести тестирование ввода данных, для этого в начало тела автомата поместите компонент Получить указанные объекты. После этого удалите все компоненты и по шагам их добавляйте, смотрите какой результат в каждом компоненте. Это позволит более точно понять где происходит сбой.

    Виктор Колышев avatar
    0

    @Виктор Колышев, скачайте мой вариант https://yadi.sk/d/MyaC9LZ9gQ7nY он точно рабочий

    DeNsKiY avatar
    DeNsKiY6 июля 2016
    0

    @Виктор Колышев, вот уже в течении года пытаюсь настроить по вышеописанной схеме – и никак не получается… Может зальете еще раз свой пример, я хоть на нем пойму свои ошибки… Вот у меня первый тип файлов фильтруется а дальше не идет…

    DeNsKiY avatar
    DeNsKiY6 июля 2016
    0

    @Виктор Колышев, ps пытался найти вас в мордобуке – безуспешно! =)))

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.