0 votes

Utilisation d'Automator et d'AppleScript pour déplacer un fichier vers un dossier et un sous-dossier différents en fonction du nom et du contenu d'un fichier

Je suis un total débutant en Automator et en Scripting... J'ai lu beaucoup de réponses à des problèmes un peu similaires au mien, mais je n'arrive pas à m'adapter avec Automator + AppleScript.

Voici ce que je veux faire :

Lorsque je télécharge un fichier dans un répertoire /Volumes/Macboot /Downloads, (oui, il y a un espace dans le nom du disque dur), par exemple statement_EUR_2020-05-01_2020-05-31.pdf.

Je vérifie si le fichier a une extension pdf + s'il contient un IBAN + si le nom contient "statement". filtre pour le document

Si le fichier correspond, je veux vérifier l'année et le mois dans le nom et le déplacer en conséquence vers le bon dossier Google Drive :

/Volumes/Macboot /Travail en cours/Google Drive/Company/Comptabilite/2020/05/Compte Transferwise 1/

Avec l'aide de @Solar Mike, voici ce que j'essaie : Ce que je fais sans succès pour le moment:

on run {input, parameters}
    tell application "Finder"
        activate
        set theFile to input as text
        set copyFile to input as alias
        set yearName to ((characters 34 thru -1 of theFile) as string) --trim first 35
        set yearName to ((characters 1 thru -22 of yearName) as string) --trim last 23
        set monthName to ((characters 39 thru -1 of theFile) as string)
        set monthName to ((characters 1 thru -19 of monthName) as string)
        set destinationFolder to ("Macboot :Travail en cours:Google Drive:Company:Comptabilite:" & yearName & ":" & monthName & ":Compte Transferwise 1:Releve PDF + fichier CSV:" as alias)
        copy copyFile to (destinationFolder) 
    end tell
end run

Aucune erreur... mais aucun fichier copié. yearName est correct, tout comme monthName et destinationFolder, mais peut-être que je n'utilise pas la bonne méthode pour copier?

2voto

PatriceK Points 33

Merci à @Solar Mike, j'ai essayé ligne par ligne et trouvé comment le faire. Mon code :

on run {input, parameters}
    set theFile to input as text
    set yearName to ((caractères 34 à -1 de theFile) en tant que chaîne) --éliminer les 35 premiers
    set yearName to ((caractères 1 à -22 de yearName) en tant que chaîne) --éliminer les 23 derniers
    set monthName to ((caractères 39 à -1 de theFile) en tant que chaîne)
    set monthName to ((caractères 1 à -19 de monthName) en tant que chaîne)
    set destinationFolder to ("Macboot :Travail en cours:Google Drive:Company:Comptabilite:" & yearName & ":" & monthName & ":Compte Transferwise 1:Releve PDF + fichier CSV:" en tant que texte)
    tell application "Finder"
        activer
        déplacer theFile vers destinationFolder -- utiliser "copier source_file vers dossier (target_folder en tant qu'alias)" pour copier les fichiers
    end tell
    set resultat à {yearName, monthName, theFile, destinationFolder}
    retourner resultat
fin run

Le problème de ma première tentative était juste avec "copier" copiant le nom, pas le fichier. Mais comme j'ai besoin qu'il soit déplacé, maintenant tout va bien.

0 votes

Bien joué, bravo à toi.

-2voto

Solar Mike Points 4109

J'ai utilisé ceci :

tell application "Finder"
activate
        set source_folder to choose folder with prompt "Veuillez choisir le dossier Source :" default location ((path to home folder) as alias)
        set source_files to every file in source_folder
        set target_folder to choose folder with prompt "Veuillez choisir le dossier Cible :" default location (":Applications:" as alias)
        repeat with i from 1 to number of items in source_files
                set source_file to (item i of source_files)
                copy source_file to (target_folder) -- utiliser "copier source_file vers le dossier (target_folder en tant qu'alias)" pour copier les fichiers
        end repeat
        set question to display dialog "  Les fichiers ont été déplacés.
end tell

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X