Nếu tôi hiểu chính xác yêu cầu của bạn, thì kịch bản này sẽ làm những gì bạn muốn. Đảm bảo thay đổi tên người dùng trên dòng đầu tiên thành tên người dùng của bạn.
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
Hãy cẩn thận: Tập lệnh sẽ thất bại (và chỉ có thể di chuyển một số tệp của bạn) nếu đã có một tệp có cùng tên trong thư mục mà nó đang di chuyển. Nếu bạn muốn thay thế các tệp trong trường hợp đó và tránh thất bại, hãy thêm with replacing
vào cuối dòng 18 ( move every ... to cFolder with replacing
).
Chỉnh sửa để thêm: Ồ, chỉ cần thấy rằng bạn đã thiết lập nó trong Dropbox thay vì trong thư mục Documents. Chỉ cần thay đổi đường dẫn trên dòng 14 và 15 để phản ánh đường dẫn bạn đang sử dụng và nó sẽ ổn.