特定の拡張子を持つすべてのファイルを単一のディレクトリにコピーするにはどうすればよいでしょうか (ディレクトリ構造なし)?

特定の拡張子を持つすべてのファイルを単一のディレクトリにコピーするにはどうすればよいでしょうか (ディレクトリ構造なし)?

JPGにある拡張子を持つさまざまなサブディレクトリ内のすべてのファイルをC:の単一のディレクトリにコピーしようとしていますD:。ディレクトリ構造を保持したくありません。

私がこれまでに得た情報はこれだけです:

for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures

この時点以降、 を上書きするかどうかを尋ねられますD:\pictures。 と答えるとyes、ファイルは 1 つだけになり、 と答えないと、ファイルはコピーされません。

/yコマンドの最後に追加することも試みましたが、前のファイルが上書きされ、最後のファイルだけが残ります。

答え1

これは動作するはずです:

for /r C:\ %f in (*.jpg) do @copy "%f" D:\pictures\

説明:

このコマンドは、ディレクトリ 内のファイルである の場所にcopy "%f" D:\picturesファイルをコピーします。%fD:\picturespicturesD:\

末尾を追加して、ディレクトリとして扱われることを\確認します。copypictures

複数のファイルを 1 つの場所 (例: copy *.* D:\backup) にコピーすると、 は自動的にディレクトリとしてcopy扱います。ただし、1 つのファイルをコピーする場合はそうではありません。backup

答え2

/R c:\ %%1 in ("*.txt") で @xcopy "%%1" d:\txttemp%%~p1 /e/i/s/q/h を実行します

このコードは上書きせずにコピーし、フォルダとサブフォルダを作成します

関連情報