大量のファイルをバックアップするときに、既にバックアップ先に前回分のバックアップがある状態で、フォルダごとコピーすると以下のことが発生します。
- サイズの計算に時間がかかる
- 少しファイル名を変更しただけなのに、コピーされてしまうので重複が発生する
- フォルダ構成を変更していたら、フォルダ毎コピーするので容量が無駄
そこで、フォルダとファイルの一覧をテキストで出力して、バックアップ元とバックアップ先の差異がすぐわかるようにします。
コピー元とコピー先のディレクトリ構成とファイルの差異を確認する方法
フォルダ・ファイルの一覧をテキストファイルに出力
フォルダ・ファイルの一覧をテキストファイルに出力する部分は、PowerShellです。
コピー元のフォルダ・ファイル一覧を「cp_from.txt」
コピー先のフォルダ・ファイル一覧を「cp_to.txt」
に出力します。
### コピー元 ##########################
[STRING]$FROM_DIR = 'D:\01_picture'
Get-ChildItem `
$FROM_DIR -Recurse | `
ForEach-Object {$_.FullName} | `
Sort-Object > cp_from.txt
### コピー先 ##########################
[STRING]$FROM_DIR = 'F:\01_picture'
Get-ChildItem `
$FROM_DIR -Recurse | `
ForEach-Object {$_.FullName} | `
Sort-Object > cp_to.txt
出力したテキストファイルの差異を確認
ファイルの比較はWinMergeを使用します。
(比較はプログラムで実施せず、WinMerge。やっぱ使いやすいですよね。プログラミングでやるのはあきらめました。)