【发布时间】:2008-10-09 02:24:21
【问题描述】:
我有一个目录,其中包含多个包含文件的子目录。
如何将子目录中的所有文件复制到新位置?
编辑:我不想复制目录,只复制文件...
由于这仍然在 XP 上,我选择了以下解决方案:
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\"
谢谢!
【问题讨论】:
标签: copy batch-file cmd
我有一个目录,其中包含多个包含文件的子目录。
如何将子目录中的所有文件复制到新位置?
编辑:我不想复制目录,只复制文件...
由于这仍然在 XP 上,我选择了以下解决方案:
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\"
谢谢!
【问题讨论】:
标签: copy batch-file cmd
好的。通过您的编辑说您不想要目录结构,我认为您会想要使用这样的东西:
for /F "usebackq" %s IN (`DIR /B /S /A-D SrcDir`) DO @(
XCOPY %s DestDir\%~nxs
)
【讨论】:
Xcopy 命令在这里应该有所帮助。
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"
在批处理文件与命令行中,将 %f 更改为 %%f
【讨论】:
如果你想在另一端保持相同的文件夹结构,听起来就像 XCOPY 一样简单
xcopy c:\old\*.* d:\new\ /s
如果您也想复制空目录,请使用 /e 而不是 /s。
【讨论】:
for /D %S IN ("src\*.*") DO @COPY "%S\" "dest\"
【讨论】: