OS X - AppleScriptファイルを毎日別のフォルダに移動することに関する質問(フォルダは異なります)


4

私は現在これを使っています( http://lifehacker.com/193778/download-of-the-day--auto+applescript-tickler-file ティッカーファイルシステムのために)そしてそれを私のDropboxでセットアップしてもらう(それはシステム間で動作する)。それを完璧にすることからのほんの2、3の事柄があります。誰かが私を手伝うことができればそれは素晴らしいだろう。

私がやっているのは、前日のフォルダの内容を取得し(毎日変更され番号が付けられる)、それらを現在の日に移動するスクリプトまたはワークフローです。それで、毎日午前中に実行するアラームとしてそれを設定することができます。

どうもありがとう。

回答:


2

私があなたの要求を正しく理解しているなら、このスクリプトはあなたが望むことをするべきです。最初の行のユーザー名を必ず自分のユーザー名に変更してください。

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

追加するために編集して下さい: ああ、ちょうどあなたがそれをDocumentsフォルダの代わりにあなたのDropboxの中に設定したのを見た。使用しているパスを反映するように14行目と15行目のパスを変更するだけで、問題ありません。


見事!出来た!私はいくつかの変更を加える必要がありました、しかしそうです!あなたは素晴らしいです - ありがとう!ええ、私は場所をDropboxに変えました、そしてまた私はMacintosh HDをMain HDに変えました、そしてそれはすべて良かったです。
Sulcalibur

と言っています
Lizzan

2

非常に単純な解決策は 自動化アプリケーション (独立して実行されるワークフロー)このワークフローを設定するのに約15秒かかりました(文字通り)。 alt text


確かにそれ自体では有用であるが、私はこれがOPがそれをすることを望んだことをしているとは思わない。このワークフローは、最終日に作成されたファイルを移動しますが、私が理解しているTicklerファイルシステムから、ファイルに対処することになっているその日のファイルをフォルダに配置します。その日に対処しなかった場合は、忘れられないようにするために当日に移動する必要があります。そのため、移動するファイルはいつでも作成できたはずです。
Lizzan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.