Windows Batchを使用してファイルをコピーするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/185698

  •  06-07-2019
  •  | 
  •  

質問

複数のサブディレクトリとファイルのあるディレクトリがあります。
サブディレクトリ内のすべてのファイルを新しい場所にコピーするにはどうすればよいですか?

編集:ディレクトリをコピーするのではなく、ファイルだけをコピーします...

これはまだXP上にあるため、以下のソリューションを選択しました。

 for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"

ありがとう!

役に立ちましたか?

解決

はい。ディレクトリ構造が必要ないという編集があれば、次のようなものを使用したいと思うでしょう。

for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
    XCOPY %s DestDir\%~nxs
)

他のヒント

ここでXcopyコマンドが役立ちます。

XCOPY /E SrcDir\*.* DestDir\

または、SrcDir内のファイルがまったくなく、サブディレクトリだけが必要な場合は、FORコマンドとともにXCOPYを使用できます。

FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\

robocopy" c:\ source" " c:\ destination" / E

あなたが正しく理解できた場合、大きなディレクトリツリーがあり、その中のすべてのファイルを1つのディレクトリに配置する必要があります。それが正しければ、次の2行で行うことができます。

dir /s /b "yourSourceDirectoryTreeHere" > filelist.txt
for /f %f in (filelist.txt) do @copy %f "yourDestinationDirHere"

バッチファイルとコマンドラインで%fを%% fに変更します

反対側で同じフォルダ構造を維持したい場合は、XCOPYと同じくらい簡単に聞こえます

  

xcopy c:\ old \ *。* d:\ new \ / s

空のディレクトリもコピーする場合は、/ sではなく/ eを使用します。

 for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top