批处理命令进行文件夹及子级文件的复制

场景1-单目录复制

将目录dir下的所有文件复制到目录dir2下

@echo off
:: 要复制的文件夹
set SOUECE=F:\dir
:: 复制到的目录
set DESTINATION=F:\dir2
xcopy %SOUECE% %DESTINATION%\ /s/y/i
pause

场景2-多目录复制

目录dir下有很多文件夹,每个文件夹下都有子文件夹dir3,现在要将dir目录下所有文件夹里面的dir3里的文件复制到目录dir2下

bat复制

@echo off
:: 要复制的文件夹
set SOUECE=F:\dir
:: 复制到的目录
set DESTINATION=F:\dir2
for /d %%i in (%SOUECE%\*) do (
xcopy %%i\dir3 %DESTINATION%\ /s/y/i)
pause

注意

  1. for循环在cmd命令窗口中使用的时候,变量i%i表示,但是在cmd文件中保存后运行时,cnd文件里的i要用%%i表示

参考文档

https://www.cnblogs.com/xpwi/p/9626959.html
https://www.cnblogs.com/liangblog/p/9835940.html

上一篇:Shell表达式,如${file##*/}


下一篇:Linux下覆盖目录的方法