OS X - AppleScript Question sur le déplacement de fichiers tous les jours dans un autre dossier (dossiers varient)
-
16-10-2019 - |
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.
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'à: