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

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

  •  4
  • Nescio  · 技术社区  · 16 年前

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

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

    由于这仍然在XP上,我选择了以下解决方案:

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

    谢谢!

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

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

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

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

    XCOPY /E SrcDir\*.* DestDir\
    

    或者,如果不需要srcdir中的任何文件,只需要子目录,则可以将xcopy与for命令结合使用:

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

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

        4
  •  1
  •   Mark Allen    16 年前

    如果我正确理解你,你有一个大目录树,你希望它里面的所有文件都在一个目录中。如果这是正确的,那么我可以用两行来完成:

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

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

        5
  •  0
  •   Cowan    16 年前

    如果要在另一端保留相同的文件夹结构,听起来就像xcopy一样简单。

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

    如果希望同时复制空目录,请使用/e而不是/s。

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