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

[代码合集] 批处理多个文件夹合并

[复制链接]
 楼主| 发表于 2024-8-15 16:17:48 | 显示全部楼层
回复 15# 77七


    师傅 是这样  Camera文件夹里面有很多个文件夹或者文件相片之类的  其中包含cache这个文件夹在里面  复制移动其它的  但是不要复制移动cache这个文件夹
发表于 2024-8-15 16:25:28 | 显示全部楼层
试试这样:
  1. robocopy "%%~a" "E:\BBBBB" /s /xd "cache"
复制代码
发表于 2024-8-15 16:32:25 | 显示全部楼层
回复 16# FU586097


   把代码替换原robocopy那行,没有效果吗?
发表于 2024-8-15 16:40:53 | 显示全部楼层
更精确一些,按6楼代码修改:
  1. @echo off
  2. for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
  3.     if not "%%~nxa"== "Camera" (
  4.         robocopy "%%~a" "E:\BBBBB" /s
  5.     ) else (
  6.         robocopy "%%~a" "E:\BBBBB" /s /xd "cache"
  7.     )
  8. )
  9. pause
复制代码
发表于 2024-8-15 16:46:26 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-8-15 19:07 编辑

回复 16# FU586097

试试 xcopy 方法...

  1. @echo off &set/p="\cache"<nul>"_e.lst" &for %%a in (
  2.         "I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather"
  3. ) do (xcopy "%%a" "e:\BBBBB" /ysi /exclude:_e.lst)
  4. del/q "_e.lst"&pause&exit/b
复制代码
 楼主| 发表于 2024-8-15 16:59:29 | 显示全部楼层
回复 18# 77七


    师傅 他们的都不能用  是否在目标文件夹e:\BBBBB里面删除cache这个文件夹  谢谢
发表于 2024-8-15 17:03:04 | 显示全部楼层
cache属性是?
 楼主| 发表于 2024-8-15 17:04:43 | 显示全部楼层
回复 22# qixiaobin0715

文件夹
发表于 2024-8-15 17:13:27 | 显示全部楼层
本帖最后由 77七 于 2024-8-16 05:43 编辑
  1. @echo off
  2. rem 保存为ansi
  3. attrib -a "I:\内部存储\DCIM\Camera\cache\*" /s /d
  4. for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
  5.         robocopy "%%~a" "E:\BBBBB" /s /a
  6. )
  7. attrib +a "I:\内部存储\DCIM\Camera\cache\*" /s /d
  8. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
FU586097 + 1 太强大了

查看全部评分

 楼主| 发表于 2024-8-15 17:27:40 | 显示全部楼层
回复 24# 77七


    师傅 谢谢你
发表于 2024-8-15 19:05:20 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-8-15 21:07 编辑

回复 21# FU586097

关于排除目录文件的有效用法,虽然 xcopy /? 已有说明,但 ‘排除项列表文件名不要用双括号包裹’ 这个关键点,还是从老帖(早至13年前)中揭出...
已订正20楼代码,楼主可试一试...
发表于 2024-8-15 22:18:15 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-8-15 22:56 编辑

回复 21# FU586097

再查了老帖有关 ‘robocopy 排除目录文件无效’ 的解法,一个关键点是 /xd 参数须为全路径,以下代码已测试通过...

  1. @echo off &for %%a in (
  2.         "I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather"
  3. ) do (robocopy "%%a" "c:\temp\BBBBB" /ns /nc /nfl /njh /njs /s /xd "d:\@uc\DCIM\Camera\cache")
  4. pause&exit/b
复制代码
如要关闭所有进程报告,可用以下代码

  1. @echo off &for %%a in (
  2.         "I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather"
  3. ) do (robocopy "%%a" "c:\temp\BBBBB" /s /xd "d:\@uc\DCIM\Camera\cache")>nul
  4. pause&exit/b
复制代码
 楼主| 发表于 2024-8-15 23:56:32 | 显示全部楼层
回复 24# 77七


    师傅 你好 还是不能用  谢谢
发表于 2024-8-16 05:44:34 | 显示全部楼层
回复 28# FU586097


   代码已修改,应该没问题了
 楼主| 发表于 2024-8-16 07:03:53 | 显示全部楼层
本帖最后由 FU586097 于 2024-8-16 07:05 编辑

回复 29# 77七


    师傅 早上好 还没好  不能用  麻烦你看一下 谢谢

@echo off
rem 保存为ansi
attrib -a "I:\内部存储\DCIM\Camera\cache\*" /s /d
for %%a in ("I:\内部存储\DCIM\Camera" "I:\内部存储\Pictures\WeiXin" "I:\内部存储\Pictures\Screenshots" "I:\内部存储\seaweather") do (
        robocopy "%%~a" "E:\BBBBB" /s /a
)
attrib +a "I:\内部存储\DCIM\Camera\cache\*" /s /d
pause

能不能增加  在BBBBB里面删除cache 就行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 23:15 , Processed in 0.023203 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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