名前が競合するファイルを上書きしてサブディレクトリからルートディレクトリにファイルを移動するバッチファイル

名前が競合するファイルを上書きしてサブディレクトリからルートディレクトリにファイルを移動するバッチファイル

そこで助けを求めます。現在、Google フォトの混乱を整理しようとしています。Google フォトのアーカイブをダウンロードしましたが、ファイルや写真が入ったフォルダーがたくさんあります。クリーンアップに使用しているこのポータブル ドライブのルートにフォルダーからファイルや写真を移動するバッチ ファイルを作成しようとしています。

これまでのところ、私はこれを持っています:

@echo off
for /f "tokens=*" %%f in ('dir /a:-D /s /b') do move "%%f" .
for /f "tokens=*" %%f in ('dir /a:D /s /b') do rd "%%f"

動作しますが、唯一の問題は、異なるフォルダーに同じファイル名の写真が存在する可能性があり、上書きしたくないことです。

上書きをブロックするために移動コマンドに設定できるパラメータはありますか?

ありがとう

答え1

上書きをブロックするために移動コマンドに設定できるパラメータはありますか?

/-Yスイッチ(ファイルを上書きするときに確認プロンプトを有効にする)を使用できます。

次のトリックは と答えるnので、移動は発生しません。

echo n|move /-y "%%f" .

ノート:

  • このトリックはワイルドカードなしで単一のファイルにのみ機能します

  • ファイルがない次のrdコマンドを移動すると、次のエラーが発生して失敗します:

    The directory is not empty.
    

参考文献

関連情報