OS X - AppleScript -Frage zum täglichen Verschieben von Dateien in einen anderen Ordner (Ordner variieren)
-
16-10-2019 - |
Frage
Ich benutze das derzeit ( http://lifeehacker.com/193778/downloadof- the-the-day-auto+Applescript-tickler-file ) für ein Tickler -Dateisystem und lassen Sie es in meiner Dropbox eingerichtet (so dass es über Systeme hinweg funktioniert). Es gibt nur ein paar Dinge, die es perfekt machen. Wenn mir jemand helfen kann, wäre das großartig.
Was ich nach bin, ist ein Skript oder einen Workflow, der den Ordnergehalt für den Vortag nimmt (sie ändern sich jeden Tag und sind nummeriert) und verschieben sie auf den aktuellen Tag. Also kann ich es als Alarm einstellen, um jeden Tag morgens auszuführen.
Vielen Dank.
Lösung
Wenn ich Ihre Anforderungen richtig verstehe, sollte dieses Skript das tun, was Sie wollen. Stellen Sie sicher, dass Sie den Benutzernamen in der ersten Zeile in Ihren Benutzernamen ändern.
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
Vorbehalt: Das Skript schlägt fehl (und hat möglicherweise nur einige Ihrer Dateien verschoben), wenn bereits eine Datei mit demselben Namen im Ordner vorhanden ist, in den es verschoben wird. Wenn Sie die Dateien in diesem Fall ersetzen und vermeiden möchten, fügen Sie es zu vermeiden with replacing
Am Ende von Zeile 18 (move every ... to cFolder with replacing
).
Bearbeiten, um hinzuzufügen: Oh, habe gerade gesehen, dass Sie es in Ihrer Dropbox anstelle im Ordner dokumentieren lassen. Ändern Sie einfach die Pfade in den Zeilen 14 und 15, um den Pfad zu reflektieren, den Sie verwenden, und es sollte in Ordnung sein.
Andere Tipps
Eine sehr einfache Lösung ist eine Automatoranwendung (Workflow, der unabhängig läuft). Es dauerte ungefähr 15 Sekunden (buchstäblich), um diesen Workflow einzulegen: