代码之家  ›  专栏  ›  技术社区  ›  Nescio

如何使用Windows批处理复制文件?

  •  5
  • Nescio  · 技术社区  · 17 年前

    我有一个目录,其中有几个包含文件的子目录。
    如何将子目录中的所有文件复制到新位置?

    编辑: 我不想复制目录,只想复制文件。..

    由于XP仍在运行,我选择了以下解决方案:

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

    谢谢!

    6 回复  |  直到 17 年前
        1
  •  6
  •   Eric Tuttleman    17 年前

    好的。如果你的编辑说你不想要目录结构,我想你会想使用这样的东西:

    for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
        XCOPY %s DestDir\%~nxs
    )
    
        2
  •  3
  •   Eric Tuttleman    17 年前

    Xcopy命令应该在这里有所帮助。

    XCOPY /E SrcDir\*.* DestDir\
    

    或者,如果你不想要SrcDir中的任何文件,只想要子目录,你可以将XCOPY与FOR命令结合使用:

    FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\
    
        3
  •  2
  •   Mark Cidade    17 年前

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

        4
  •  1
  •   Mark Allen    17 年前

    如果我没理解错的话,你有一个很大的目录树,你希望它里面的所有文件都在一个目录中。如果这是正确的,那么我可以分为两行:

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

    在批处理文件与命令行中,将%f更改为%%f

        5
  •  0
  •   Cowan    17 年前

    如果你想在另一端保持相同的文件夹结构,听起来就像XCOPY一样简单

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

    如果要复制空目录,请使用/e而不是/s。

        6
  •  0
  •   Nescio    17 年前
     for /D %S IN ("src\*.*") DO  @COPY "%S\" "dest\"