OS X - AppleScript Вопрос о перемещении файлов ежедневно в другую папку (папки различаются)
-
16-10-2019 - |
Вопрос
Я сейчас использую это ( http://lifehacker.com/193778/download-of-day-auto+applescript-tickler-file ) для файловой системы Tickler и установить ее в моем Dropbox (так что она работает в разных системах). Есть лишь пара вещей от того, чтобы сделать его идеальным. Если кто -то может помочь мне, это было бы превосходно.
То, что я ищу, это сценарий или рабочий процесс, который будет принимать содержание папок на предыдущий день (они меняются каждый день и пронумерованы) и перемещают их в текущий день. Итак, я могу установить его как тревогу, чтобы выступать утром каждый день.
Спасибо большое.
Решение
Если я правильно понимаю ваши требования, то этот сценарий должен делать то, что вы хотите. Обязательно измените имя пользователя на первой строке на ваше имя пользователя.
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
Предостережение: скрипт потерпит неудачу (и перенесет, возможно, только некоторые из ваших файлов), если в папке уже есть файл с тем же именем. Если вы хотите заменить файлы в этом случае и избежать сбоя, добавьте with replacing
в конце строки 18 (move every ... to cFolder with replacing
).
Редактировать, чтобы добавить: О, только что увидел, что вы настроили в своем Dropbox, а не в папке Documents. Просто измените пути на строках 14 и 15, чтобы отразить путь, который вы используете, и это должно быть хорошо.
Другие советы
Очень простое решение - это Приложение для автоматиза (рабочий процесс, который работает независимо). Потребовалось около 15 секунд (буквально), чтобы установить этот рабочий процесс: