xcopy复制指定类型的文件并保留原始的目录结构

参考:https://bbs.csdn.net/topics/392023993,9楼

我使用的是powershell执行此命令的,如下:

xcopy *.dat d:\mybackup /S

把当前目录及其子目录下的所有扩展名为 dat 的文件拷贝到 d:/mybackup 目录中,并保持它们原有的目录结构。

比如我当前的目录中有文件:

1.dat

2018\01.dat

2018\01.xls

2018\02.dat

2017\4\1.dat

2017\3\

在当前目录执行 xcopy *.dat d:\mybackup /S 之后,d:\mybackup 下的内容为:

1.dat

2018\01.dat

2018\02.dat

2017\4\1.dat

这个目录中只有 dat 文件,而且原始的一个窗口目录 2017\3 也是不存在的,即空目录不会被拷贝过来

xcopy的相关参数:

/E : 同 /S 相比,则会把空目录也拷贝过来,如果使用 xcopy *.dat d:\mybackup /E,则 d:\mybackup 目录下的内容为:

1.dat

2018\01.dat

2018\02.dat

2017\4\1.dat

2017\3\

最后一行红色的部分就是拷贝过来的空目录

需要注意的是,目标路径,应该采用“\”分隔符而不是“/”,否则指定的目录名无效,比如我测试的时候使用 

xcopy *.dat ../mybackup /E,结果所有的文件都以当前目录的上级目录为基础了,即相当于

xcopy *.dat .. /E


根据在拷贝过程中的观察,所谓不拷贝空目录,其实还是会先建立这个目录,如果发现这个目录中没有要拷贝的文件时,它会被删除掉,当然由于速度很快,我只观察到第一级目录,而其中的子目录则没有看到,不过我想应该也是会建立然后再删除这样的策略



版权声明:本文为jszj原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。