有没有办法在 .bat 文件中递归复制目录?有这样的例子吗?
4 回答
查看xcopy,它将递归复制文件和子目录。
有示例,页面下方的 2/3。特别有用的是:
要将所有文件和子目录(包括任何空子目录)从驱动器 A 复制到驱动器 B,请键入:
xcopy a: b: /s /e
在阅读了接受的答案的评论后,我尝试了对我有用的robocopy命令(使用 Windows 7 64 位 SP 1 中的标准命令提示符):
robocopy source_dir dest_dir /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
我想尽可能地复制 Unix/Linux cp -r
。我想出了以下内容:
xcopy /e /k /h /i srcdir destdir
标志说明:
/e
复制目录和子目录,包括空目录。
/k
复制属性。普通 Xcopy 将重置只读属性。
/h
也复制隐藏文件和系统文件。
/i
如果destination 不存在并且复制多个文件,则假定destination 是一个目录。
我将以下内容放入批处理文件 ( cpr.bat
) 中,这样我就不必记住这些标志:
xcopy /e /k /h /i %*
用法:cpr srcdir destdir
您可能还想使用以下标志,但我没有:
/q
安静。复制时不要显示文件名。
/b
复制符号链接本身与链接的目标。(需要 UAC 管理员)
/o
复制目录和文件 ACL。(需要 UAC 管理员)