2009/02/12(木)高速差分コピーツール

はてブ数 2009/02/12 08:13 計算機な日記::ボクと計算機つーさ

指定した文字列を含むパスを持つファイルを除いて、更新されたファイルだけをコピーします。

EeePCは16GBのSSDがありますが、ちょっと狭いです。なので16GBのSDHCを刺して使ってるのですが、読み書きが遅いのです。この上でプロジェクトを編集して「ビルド」する気にはあまりなれません。なので、一時的にSSDにコピーして仕事して、作業が終わったらこれを使ってSDHCに書き戻そうかという試み。

もともと、FileSystemWatcherでも使うかと思ってたんですが、監視までする必要ないかなぁとかなんとか。xcopyのオプションでなんとかならんかなぁと思って組んだのが、以下。
コピー先に存在しないか、コピー先よりも日時の新しいファイルだけコピーしてくれるバッチファイルです。
ビルド一時ファイルディレクトリ (\\bin\\~と\\obj\\~)はコピー対象にしないとかいった設定ができるので便利かなぁ。どうかなぁ。ちょっとまだ使ってみないとわかりませんが。

xcopyfast.bat

    setlocal
    set srcPath=.
    set dstPath=D:\\backup
    echo %~n0>>%~n0.$
    echo %~n0.$>>%~n0.$
    xcopy %srcPath%\\*.* %dstPath%\\ /D /EXCLUDE:%~s0+%~sp0%~n0.$ /E /C /H /Y
    del %~n0.$
    endlocal
    exit

 rem -- コピーしたくないファイルのパスに含まれる文字列を以下に指定のこと --

\\bin\\
\\obj\\