Windows批处理将文件从子文件夹复制到一个文件夹

时间:2012-07-30 11:33:21

标签: windows batch-file copy xcopy

我曾尝试制作批处理脚本,将位于D:\ images(此处随机命名的子文件夹)中的所有* .tif文件复制到d:\ all。

xcopy D:\Downloads\*.TIF D:\temp\ /s

有效,但它会复制所有文件夹树。我试图使用其他键,但它不起作用。 谢谢你的帮助!

4 个答案:

答案 0 :(得分:37)

FOR是你的朋友。阅读HELP FOR选项和/R变量替换上的%~nx;然后尝试这个非常简单的代码。

   pushd d:\downloads
   for /r %%a in (*.tif) do (
     echo COPY "%%a" "d:\temp\%%~nxa"
   )
   popd

仔细观察结果,然后删除ECHO命令。

您必须优化代码以应对错误,重复名称,边缘情况,带保留字符的名称,竞争条件,宇宙事件......

答案 1 :(得分:5)

使用Windows文件浏览器搜索文件,例如* .gif,我在搜索窗口中找到文件,使用Edit =>选择全部,复制然后粘贴到所需的文件夹。这会将所有子目录中的所有gif文件复制到单个文件夹中。 对于大量文件,它有时会挂起/没有响应,但是否则可以正常工作。

答案 2 :(得分:2)

pushd D:\Source
   for /r %%a in (*.?*) do (
       MOVE "%%a" "D:\Destination folder\%%~nxa"
   )
popd

答案 3 :(得分:1)

您也可以使用XXCOPY免费软件。像XCOPY一样工作,但是当你使用/ SG参数时,它会使子目录变平。了解如何使用它here