批处理文件以递归方式复制目录

有没有一种方法可以递归地复制. bat 文件中的目录? 有没有这方面的例子?

282021 次浏览

查看 收到,它将递归地复制文件和子目录。

这里有一些例子,在页面的2/3处,特别的用法是:

要将所有文件和子目录(包括任何空子目录)从驱动器 A 复制到驱动器 B,键入:

xcopy a: b: /s /e

您可以在 Batch 中编写一个递归算法,使您能够精确地控制在每个嵌套子目录中执行的操作:

@echo off
call :treeProcess
goto :eof


:treeProcess
rem Do whatever you want here over the files of this subdir, for example:
copy *.* C:\dest\dir
for /D %%d in (*) do (
cd %%d
call :treeProcess
cd ..
)
exit /b

Windows 批处理文件通过目录循环到处理文件? ?

在阅读了接受的答案的评论之后,我尝试了 机器人复制命令,这个命令对我很有用(使用 Windows 764 bit SP 1的标准命令提示符) :

robocopy source_dir dest_dir /s /e

我想尽可能地复制 Unix/Linux 的 cp -r:

xcopy /e /k /h /i srcdir destdir

旗帜说明:

复制目录和子目录,包括空目录。
常规 Xcopy 将重置只读属性。
也复制隐藏文件和系统文件。
/i如果目的地不存在并复制多个文件,则假定目的地是一个目录。


我把下面的内容做成了一个批处理文件(cpr.bat) ,这样我就不必记住这些标志了:

xcopy /e /k /h /i %*

用法: cpr srcdir destdir


您可能还想使用以下标志,但我没有:
安静。复制时不要显示文件名。
/b复制符号链接本身相对于链接的目标。(需要 UAC 管理员)
复制目录和文件 ACL。(需要 UAC 管理)