[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理复制A路径下所有文件到B路径并排除A路径里面的某一个子路径C和D

本帖最后由 304802301 于 2024-12-8 10:17 编辑

路径A:D:\test(里面包含各种子文件夹及文件)
路径B:D:\test-备份
路径C:D:\test\123(路径C是在路径A里面的某一个子文件夹)
路径D:D:\test\客户资料\上海\2024年(路径D是在路径A里面的某一个子文件夹)

我的需求:把路径A里面的所有文件和文件夹都复制到路径B中,但是要排除路径C和D。
有个小要求:就是代码中不要set路径A=D:\test,或者set其他什么什么的,代码中直接使用完整路径即可。
论坛里的大神帮忙看看

本帖最后由 wanghan519 于 2024-12-8 10:37 编辑

可以找个robocopy的图形界面,或者ai写排除参数,大概如下,但没测试,cmd的双引号真的不知道怎么用。。。
Robocopy.exe "D:\test" "D:\test-备份" -e -xd "D:\test\123" -xd "D:\test\客户资料\上海\2024年"

但是,看起来是备份,如果能使用rsync这种,从A对照复制到B,重复文件都只创建硬连接,更快更适合滚动备份

TOP

本帖最后由 aloha20200628 于 2024-12-8 13:43 编辑

回复 1# 304802301

有两个方法可用,各有其便捷之处...

一。用 robocopy 方法(包括复制空子目录,不包括须改下式中的参数 /e 为 /s)
  1. robocopy "D:\test" "D:\test-备份" /e /xd "D:\test\123" "D:\test\客户资料\上海\2024年"
复制代码
二。用 xcopy 方法(包括复制空子目录,不包括须改下式中的参数 /e 为 /s)
  1. xcopy /eiy  "D:\test" "D:\test-备份" /exclude:D:\test-备份\排除项列表.txt
复制代码
上式中的 D:\test-备份\排除项列表.txt 文件中每行写入一个排除项,但无论其中是否包含空格均不能用双引号包裹,本例中须写入如下两行即可

D:\test\123
D:\test\客户资料\上海\2024年

这个预先创建的 ‘排除项列表文件’ 其本身的文件名及路径却不能包含空格,也不能在 xcopy 命令行中用双引号包裹... 看起来采用 xcopy 方法比较繁琐,但用其排除项列表文件却可以定义诸多且复杂的排除项(目录和文件),而用 robocopy 就要在命令行写入‘一串长龙’....
1

评分人数

TOP

返回列表