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