我有一个包含多个子目录和文件的目录。
如何将所有子目录中的文件复制到新位置?
编辑:我不想复制目录,只是文件...
由于这仍在XP上,我选择了以下解决方案:
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\"
谢谢!
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 /E SrcDir\*.* DestDir\
如果您不想要SrcDir中的任何文件,只想要子目录,您可以使用XCOPY与FOR命令结合使用:
FOR /D %s IN (SrcDir\*) DO @XCOPY /E %s DestDir\%~ns\
robocopy "c:\source" "c:\destination" /E
如果我理解正确,您有一个大的目录树,希望将其中所有文件放在一个目录中。如果是这样,那么我可以用两行代码实现:
dir /s /b "yourSourceDirectoryTreeHere" > filelist.txt
for /f %f in (filelist.txt) do @copy %f "yourDestinationDirHere"
如果你想在另一端保持相同的文件夹结构,使用XCOPY听起来很简单。
xcopy c:\old\*.* d:\new\ /s
如果你想要复制空目录,可以使用/e而不是/s。
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\"