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

[文本处理] 批处理BAT如何只复制不存在的文件?

[复制链接]
发表于 2014-4-24 17:02:34 | 显示全部楼层 |阅读模式
现在有两个文件夹A和B,请问如何用批处理文件将A文件夹对比B文件夹不存在的文件复制到B文件夹?谢谢
发表于 2014-4-24 20:30:13 | 显示全部楼层
  1. set "a=c:\A"
  2. set "b=D:\B"
  3. xcopy /c /d /e /i /v "%a%" "%b%"
复制代码
C:\Users\yu2n>xcopy /?
复制文件和目录树。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]
                           [/EXCLUDE:file1[+file2][+file3]...]
  /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
               如果没有提供日期,只复制那些
               源时间比目标时间新的文件。
  /E           复制目录和子目录,包括空目录。
               与 /S /E 相同。可以用来修改 /T。
  /V           验证每个新文件的大小。
  /C           即使有错误,也继续复制。
  /I           如果目标不存在,且要复制多个文件,
               则假定目标必须是目录。
 楼主| 发表于 2014-4-24 22:49:55 | 显示全部楼层
谢谢yu2n指点
发表于 2014-4-25 00:33:14 | 显示全部楼层
另外也可试下 replace
  1. @echo off
  2. set "ph1=c:\A"
  3. set "ph2=D:\B"
  4. replace /a "%ph1%\*" "%ph2%"
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 这个好

查看全部评分

发表于 2014-4-25 01:08:34 | 显示全部楼层
回复 4# terse


    冷知识,学习了...刚学的时候用了几次 replace,然后搁置一百年
发表于 2014-4-25 08:35:46 | 显示全部楼层
回复 2# yu2n


    这个似乎不能做到Lz的要求吧,加D只是对日期进行了限定
发表于 2014-4-25 10:14:13 | 显示全部楼层
回复 6# zhanglei1371


我在想似乎可以用 /EXCLUDE,不过存在误判可能。
  1. dir /b /a-d b\>排除.txt&xcopy /EXCLUDE:排除.txt a\* b\
复制代码
还是 replace 简单靠谱
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 05:31 , Processed in 0.031591 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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