ちょっと面白かったので載せておきます。
最近のWindowsには、robocopyというコマンドがあります。
------------------------------------------------------------------------------- ROBOCOPY :: Windows の堅牢性の高いファイル コピー ------------------------------------------------------------------------------- 開始: Wed Mar 25 22:34:38 2015 簡易な使用法 :: ROBOCOPY コピー元 コピー先 /MIR コピー元 :: コピー元ディレクトリ (ドライブ:\パスまたは \\サーバー \共有\パス)。 コピー先 :: コピー先ディレクトリ (ドライブ:\パスまたは \\サーバー \\共有\パス)。 /MIR :: 完全なディレクトリ ツリーをミラー化します。 詳細な使用方法については、ROBOCOPY /? を実行してください。 **** /MIR はファイルをコピーできるだけでなく、削除もできます。
ようするに、Windows標準で差分バックアップなどが実現できます。 これを使って、特定フォルダをバックアップするバッチファイルを作ったところ、なぜか無限ループしました。 書いたバッチファイルは、だいたいこんな感じのもの。
echo "hogeをfugaにバックアップします." robocopy c:\hoge c:\fuga /MIR
なぜなのか。それは、バッチファイル名をrobocopy.batにしてしまったからです。 つまり、robocopy c:\hoge c:\fuga /MIRでは、Windowsのrobocopyコマンドではなく、自分自身であるrobocopy.batを呼び出してしまいました。 よって、無限ループしてしまった。うっかりですが、ちょっと面白いです。