« CALLコマンドと%%で遅延展開を代替する。 | トップページ | 同じ木構造で比較先ディレクトリに同一ファイルがあるものを比較元ディレクトリから削除する。 »

2006年11月 7日 (火)

同じ木構造で比較先ディレクトリに同名ファイルがあるものを比較元ディレクトリから削除する。

昔はツールを使って「find dir1 -t -exists dir2 -rm」で簡単に出来たのですが、
ツールがLFNに対応してないため、これに代わるバッチファイルを作ってみました。

使用法: FindExistsRm.CMD 比較元ディレクトリ 比較先ディレクトリ

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%0 IN (%1) DO (
FOR /R %1 %%1 IN (*) DO (
SET x=%%~f1
SET x=!x:%%~f0=%2!
FOR %%2 IN ("!x!") DO (
echo DEL "%%~f1"
)
)
)

念のため、DELコマンドはechoでコメントにしてあります。
各自のシステム環境で十分テストした上でコメントを外してください。

« CALLコマンドと%%で遅延展開を代替する。 | トップページ | 同じ木構造で比較先ディレクトリに同一ファイルがあるものを比較元ディレクトリから削除する。 »