找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 9920|回复: 2

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

[复制链接]
发表于 2024-12-8 10:16:23 | 显示全部楼层 |阅读模式
本帖最后由 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其他什么什么的,代码中直接使用完整路径即可。
论坛里的大神帮忙看看
发表于 2024-12-8 10:22:25 | 显示全部楼层
本帖最后由 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,重复文件都只创建硬连接,更快更适合滚动备份
发表于 2024-12-8 12:38:35 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
wanghan519 + 1 学到了

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:50 , Processed in 0.019068 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表