【Lifehacks】2つのドライブの差分を取得

■タスク
・2つのドライブに含まれるファイルを比較し差分を取得する。


■目的
・メインPCの外付けHDDを1TB HDD RAID1とし、従来のHDD内容を移行した際、ファイルに不足がないかを比較することにした。


■仕様
・既存HDDはそのまま保存するのでファイルリスト比較レベルでチェックする。
・指定した二つのドライブの内容を比較し、それぞれ一方にのみ含まれるファイル一覧を出力。


■備考
・ファイルを生成できてもコピーできない場合があるため、既存ファイルの一括コピーでエラーとなりコピーできない場合がある。そのようなファイルを抽出し、個別対処するために作成。
・要Cygwin32。


■使用方法
> SgDiff2Drv.bat


■プログラム

:
: SgDiff2Drv.bat
: 2つのドライブの差分を取得する。
:
: Author: Orihika Ikuo
: Create: 2009.01.10
: Update: 2009.02.07
:

set Drv1=I
set Drv2=J
set FileList1=FileList%Drv1%.txt
set FileList2=FileList%Drv2%.txt
set Only1=Only%Drv1%.txt
set Only2=Only%Drv2%.txt
set TmpFile=tmp

dir /s /b %Drv1%:\ | sort | sed -e 's/^.:/X:/' > %FileList1%
dir /s /b %Drv2%:\ | sort | sed -e 's/^.:/X:/' > %FileList2%

cat %FileList1% %FileList2% | sort | uniq -d > %TmpFile%
cat %FileList1% %TmpFile%  | sort | uniq -u > %Only1%
cat %FileList2% %TmpFile%  | sort | uniq -u > %Only2%

del %TmpFile%
del %FileList1%
del %FileList2%