OS X - AppleScript Question sur le déplacement de fichiers tous les jours dans un autre dossier (dossiers varient)

apple.stackexchange https://apple.stackexchange.com/questions/2892

Question

Je suis actuellement en utilisant ce ( http: / /lifehacker.com/193778/download-of-the-day--auto+applescript-tickler-file ) pour un système de fichiers tickler et dans la configuration avoir mon Dropbox (il fonctionne sur les systèmes). Il y a seulement quelques choses de le rendant parfait. Si quelqu'un peut me aider ce serait superbe.

Ce que je suis après est un script ou flux de travail qui prendra le contenu des dossiers pour la journée précédente (ils changent chaque jour et sont numérotées) et les passer à la journée en cours. Donc, je peux le mettre dans comme une alarme pour effectuer le matin tous les jours.

Merci beaucoup.

Était-ce utile?

La solution

Si je comprends bien vos besoins, alors ce script doit faire ce que vous voulez. Assurez-vous de changer le nom d'utilisateur sur la première ligne à votre nom d'utilisateur.

set username to "lizzan"

set cy to (year of (current date)) as integer
set cm to (month of (current date)) as integer
set cd to (day of (current date)) as integer

set yd to yesterday(cy, cm, cd)

set yy to item 1 of yd
set ym to item 2 of yd
set yd to item 3 of yd


set yFolder to "Macintosh HD:Users:" & username & ":Documents:To Do:" & yy & ":" & ym & ":" & yd
set cFolder to "Macintosh HD:Users:" & username & ":Documents:To Do:" & cy & ":" & cm & ":" & cd

tell application "Finder"
    move every file of folder yFolder to cFolder
end tell

on yesterday(y, m, d)
    set d to d - 1

    if d ≤ 0 then
        set m to m - 1
        if m ≤ 0 then
            set y to y - 1
            set m to 12
        end if
        set thirtyones to {1, 3, 5, 7, 8, 10, 12}
        set thirties to {4, 6, 9, 11}
        if m is in thirtyones then
            set d to 31
        else if m is in thirties then
            set d to 30
        else if leapyear(y) then
            set d to 29
        else
            set d to 28
        end if

    end if

    set yd to {y, m, d}
    return yd

end yesterday

on leapyear(y)
    if y mod 4 is 0 then
        if y mod 100 is 0 then
            if y mod 400 is 0 then
                return true
            end if
            return false
        end if
        return true
    end if

    return false

end leapyear

Caveat: Le script échouera (et ont peut-être seulement déplacé certains de vos fichiers) s'il existe déjà un fichier avec le même nom dans le dossier, il se déplace vers. Si vous voulez remplacer les fichiers dans ce cas, et éviter à défaut, ajouter with replacing à la fin de la ligne 18 (move every ... to cFolder with replacing).

Modifier pour ajouter: Oh, juste vu que vous aviez mis en place dans votre Dropbox plutôt que dans le dossier Documents. Il suffit de changer les chemins sur les lignes 14 et 15 afin de refléter le chemin que vous utilisez, et il devrait être bien.

Autres conseils

Une solution très simple est un Automator application (workflow qui fonctionne de façon indépendante). A pris environ 15 secondes (littéralement) pour régler ce flux de travail jusqu'à: text alt

Licencié sous: CC-BY-SA avec attribution
Non affilié à apple.stackexchange
scroll top