J'essaie de créer un AppleScript qui filtre certains fichiers dans différents dossiers

1

J'ai différents fichiers / types, généralement étiquetés de cette façon:

000_160905_Iceman_Rumble_BA.jpg

Il y aura une variété de fichiers jpeg, PSD, modèles, etc. et je dois trouver un moyen automatisé de les classer dans différents dossiers par date dans certains cas, par types de fichiers dans d'autres cas et par l'initiale de quelqu'un (BA).

Existe-t-il un moyen dans AppleScript, dans lequel vous pouvez sélectionner certains caractères d'un type de fichier (par exemple, la date dans le fichier ci-dessus), pour se synchroniser automatiquement vers un autre dossier de mon choix?

Si quelqu'un pouvait m'aider ici, cela me sauverait vraiment!

Merci

Craig Skerry
la source
C'est tout à fait possible dans AppleScript et je laisserai le soin à des personnes plus douées que moi de montrer comment. Vous pouvez également envisager quelque chose comme Hazel qui fait exactement ce que vous voulez.
tubedogg
merci tubedog, je vais vérifier ça. Il doit y avoir un moyen dans applescript de sélectionner les caractères d’un nom de fichier pouvant régir l’endroit où ils seront automatiquement envoyés.
Craig Skerry
AppleScript est-il un MUST ou un script shell conviendrait-il également? Il peut être plus facile de sélectionner des éléments dans des chaînes / des noms de fichiers bash.
nohillside

Réponses:

1

Voici quelques scripts qui vous aideront. Ils sont basés sur la sélection de certains fichiers dans le Finder. Le premier examine chaque fichier, un à la fois, et si son extension est jpg, png ou gif, il est déplacé dans le dossier Images.

tell application "Finder"
    set folder_one to path to desktop
    set folder_two to path to pictures folder
    set the_files to the selection
    repeat with a_file in the_files
        if name extension of a_file is in {"jpg", "png", "gif"} then
            move a_file to folder_two
        end if
    end repeat
end tell

Le second script trouve les deux derniers caractères avant l'extension, comme dans votre "BA" à la fin du nom de votre fichier exemple. Les fichiers sont déplacés en fonction de ces deux derniers caractères. Le script n’est pas aussi écrit que possible mais je voulais que vous puissiez le lire et comprendre ce qui se passe.

tell application "Finder"
    set folder_one to path to desktop
    set folder_two to path to pictures folder
    set the_files to the selection
    repeat with a_file in the_files
        set the_name to name of a_file
        set the_extension to name extension of a_file
        set the_extension_length to count of characters of the_extension
        set the_extension_length to the_extension_length + 1 -- for the dot
        set the_short_name_length to (count of characters of the_name) - the_extension_length
        set the_short_name to characters 1 thru the_short_name_length of the_name as string
        -- Now we have "just the name" (no dot, no extension)
        set the_last_two_characters to characters -2 thru -1 of the_short_name as string
        -- do stuff here, based on what those last two characters are
        if the_last_two_characters = "AB" then
            move a_file to folder_one
        end if
        --
        if the_last_two_characters = "XY" then
            move a_file to folder_two
        end if
    end repeat
end tell

Ces scripts vont vous aider à démarrer. Vous pouvez utiliser des scripts comme celui-ci avec Hazel, comme mentionné précédemment dans tubedogg, pour classer les éléments au fur et à mesure qu'ils sont ajoutés à un dossier.

Christian Boyce
la source