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

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

场景1-单目录复制

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

bat复制

使用xcopy命令,具体可参考百度百科

@echo off

:: 要复制的文件夹

set SOUECE=F:\dir

:: 复制到的目录

set DESTINATION=F:\dir2

xcopy %SOUECE% %DESTINATION%\ /s/y

pause

/s:复制目录和子目录,除了空的。

/y:取消提示,直接覆盖

场景2-多目录复制

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

bat复制

使用for循环和xcopy

for循环的使用方式:for [参数] %%变量名 in (匹配符) do (执行的命令),do 里面的东西可以通过括号括起来,否则无法进行换行

@echo off

:: 要复制的文件夹

set SOUECE=F:\dir

:: 复制到的目录

set DESTINATION=F:\dir2

for /d %%i in (%SOUECE%\*) do (

xcopy %%i\dir3 %DESTINATION%\ /s/y/i)

pause

for后面的/d表示遍历当前路径的文件夹下的文件夹,如果不加,会获得dir目录下的所有文件名

shell复制

使用shell中的cp命令

cp -r F:/dir/*/dir3/* F:/dir2

使用shell进行复制,不用for循环,而且可以多次使用通配符

cp -r F:/dir/*/dir4/*/*/dir3/* F:/dir2

cp -r F:/dir/*/dir4/*/*/dir3/*.txt F:/dir2

注意

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

路径中有中文的时候,可能会出现乱码,可以尝试转换编码格式,使用utf-8格式?使用ANSI格式?

参考文档

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

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

← 上一篇: 成语兵贵神速是什么意思?背后有什么典故?
下一篇: 组装电脑和装系统要多久?完整时间预估及影响因素解析 →

相关推荐