![特定の拡張子を持つすべてのファイルを単一のディレクトリにコピーするにはどうすればよいでしょうか (ディレクトリ構造なし)?](https://rvso.com/image/1311333/%E7%89%B9%E5%AE%9A%E3%81%AE%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%82%92%E6%8C%81%E3%81%A4%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%8D%98%E4%B8%80%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%20(%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E6%A7%8B%E9%80%A0%E3%81%AA%E3%81%97)%3F.png)
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
ファイルをコピーします。%f
D:\pictures
pictures
D:\
末尾を追加して、ディレクトリとして扱われることを\
確認します。copy
pictures
複数のファイルを 1 つの場所 (例: copy *.* D:\backup
) にコピーすると、 は自動的にディレクトリとしてcopy
扱います。ただし、1 つのファイルをコピーする場合はそうではありません。backup
答え2
/R c:\ %%1 in ("*.txt") で @xcopy "%%1" d:\txttemp%%~p1 /e/i/s/q/h を実行します
このコードは上書きせずにコピーし、フォルダとサブフォルダを作成します