Создать ZIP-файлы, содержащие связанные файлы из нескольких папок

2

Есть ли способ автоматизировать создание ZIP-файлов, содержащих файлы с общими именными элементами?

У меня есть несколько вариантов одного и того же изображения:

Файлы / 2250 / 8199 print.jpg

Файлы / 1200x1200 / 8199 square.jpg

Файлы / 1200x900 / 8199 wide1.jpg

Файлы / 1200x628 / 8199 wide2.jpg

Файлы / 480x360 / 8199 small.jpg

То, что я хотел бы сделать, это создать какое-то приложение, которое идет в папки, находит связанные файлы (все содержат «8199»), а затем архивирует их все в новый файл с именем «cartoon8199.zip».

Я пытался создать приложение с помощью Automator, но не смог понять, как сделать поле «Имя содержит» в элементе «Найти искатели» включающим переменную.

Есть идеи как этого добиться?

Я на Mac под управлением HighSierra 10.13.3.

Заранее спасибо!

Andertoons
источник
Я должен был указать, что полученные файлы ZIP будут находиться в другой папке с именем files / zips
Andertoons
Вы хотите проверить определенные папки или просмотреть весь диск?
JBis
Только конкретные папки.
Andertoons
Конкретные папки рекурсивно или просто конкретные папки?
JBis
Всего 5 конкретных папок (я думаю. Как вы, вероятно, можете сказать, я не программист. Но я быстро учусь!)
Andertoons

Ответы:

1

Вот твой сценарий, как и обещал. Есть вопросы или предложения? Комментарий ниже :)

Что делает скрипт : Поиск в выбранной папке папок. Поиск по каждому из этих файлов. Если эти файлы содержат указанный параметр поиска, файл перемещается в папку в указанном месте. После того, как все файлы проверены, файлы в папках в указанном месте архивируются.

Для чего вы хотите: Первая подсказка выберите /files папка. Во второй строке введите 8199,

Сценарий:

set myFolder to choose folder with prompt "Choose a Folder" # Choose the /files folder
display dialog "Enter Your Search Paramaters" default answer "" #Enter "8199"
set mySearch to the text returned of the result
set myZipLocation to the POSIX path of (choose folder with prompt "Choose where to save your ZIP file")
display dialog "Enter the Name of Your Compress File" default answer ""
set myZip to the text returned of the result
tell application "Finder"
    set myFolders to every folder in folder myFolder
    set myFiles to {""}
    repeat with i in myFolders
        set myFiles to myFiles & every file in i
    end repeat
    do shell script ("mkdir " & the quoted form of (myZipLocation & "/" & myZip))
    repeat with i from 2 to count of myFiles
        if the name of (item i of myFiles) contains mySearch then
            set myPOSIX to the quoted form of (the POSIX path of (item i of myFiles as alias))
            do shell script "cp " & myPOSIX & " " & the quoted form of ((myZipLocation & "/" & myZip) & "/" & the name of (item i of myFiles))
        end if
    end repeat
    do shell script "cd " & the quoted form of myZipLocation & "&& zip -r " & quoted form of (myZip & ".zip") & " " & quoted form of myZip
end tell
JBis
источник
@ Andertoons Как это работает?
JBis
@ Andertoons Отлично! Рад, что смог помочь. Если это решит вашу проблему, пожалуйста, проголосуйте и отметьте как решенное, чтобы помочь другим пользователям найти этот ответ
JBis