中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-24 15:35
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行
DOS批处理 & 脚本技术(批处理室) » 请教如何检测二个文件夹中的文件如有不同或没有就复制
可打印版本  1,069 / 13
第1楼 cjfcjf222 发表于 2007-02-08 02:34
初级用户 发帖 77 积分 172
请教如何检测二个文件夹中的文件如有不同或没有就复制
请教如何检测二个文件夹中的所有文件如有不同或没有,就复制

比如检测A文件夹和B文件夹,只要A中文件夹的文件是B中不同的或没有的,就向B中复制
第2楼 无奈何 发表于 2007-02-08 02:46
荣誉版主 发帖 356 积分 1,338
参考一下下面的代码:
放置到 A 文件夹中执行,第九行实现双相同步,不需要可以删掉。
请自行修改一下目录位置。


  1. @echo off
  2. set source="%cd%"
  3. set destination="%USERPROFILE%\「开始」菜单\Quick"

  4. if not exist %destination% (
  5. xcopy /s/v/k/y/r/h %source% %destination%\
  6. ) else (
  7. xcopy /s/v/k/d/r/h/y %source% %destination%
  8. xcopy /s/v/k/d/r/h/y %destination% %source%
  9. )
无奈何发表于 2007-02-07 13:36


[ Last edited by 无奈何 on 2007-2-8 at 02:48 AM ]
第3楼 cjfcjf222 发表于 2007-02-08 02:49
初级用户 发帖 77 积分 172
谢谢,我试一下
第4楼 cjfcjf222 发表于 2007-02-08 03:05
初级用户 发帖 77 积分 172
没有用,我修改成这样,
set source="%cd%"
set destination="d:\qq1\*.*"
if not exist %destination% (
xcopy /s/v/k/y/r/h %source% %destination%\
) else (
xcopy /s/v/k/d/r/h/y %source% %destination%

我先复制QQ目录变成QQ1,然后删除QQ1中的Sound文件夹,把上面的批处理放在QQ中执行,没有执行复制命令
第5楼 cjfcjf222 发表于 2007-02-08 03:07
初级用户 发帖 77 积分 172
上面的IF NOT命令好象只检测QQ根目录中的文件吧,我要的是这个目录中的所有子文件和子文件夹,如没有子文件夹,就创建
第6楼 无奈何 发表于 2007-02-08 03:48
荣誉版主 发帖 356 积分 1,338
RE cjfcjf222
按着原样改,别丢东西。


好好看看 xcopy /? 吧。
第7楼 cjfcjf222 发表于 2007-02-08 07:11
初级用户 发帖 77 积分 172
谢谢,好用了
第8楼 cjfcjf222 发表于 2007-02-08 07:20
初级用户 发帖 77 积分 172
非常感谢,我改成这样,以可以比较多个目录进行更新
@echo off
if not exist d:\qq1 (
xcopy /s/v/k/y/r/h d:\qq d:\qq1\
) else (
xcopy /s/v/k/d/r/h/y d:\qq d:\qq1
)
第9楼 anqing 发表于 2007-02-08 08:16
高级用户 发帖 413 积分 859
版主的代码,真是强
第10楼 anqing 发表于 2007-02-08 08:19
高级用户 发帖 413 积分 859
版主的代码,关于对比的是哪个参数呀?是/v
吗???
第11楼 cjfcjf222 发表于 2007-02-08 23:32
初级用户 发帖 77 积分 172
啊呀版主,我修改成这样
@echo off
if not exist I:\d\BACK (
xcopy /s/v/k/y/r/h D:\BACK I:\d\BACK\
) else (
xcopy /s/v/k/d/r/h/y D:\BACK I:\d\BACK
)

if not exist I:\d\vcd (
xcopy /s/v/k/y/r/h D:\vcd I:\d\vcd\
) else (
xcopy /s/v/k/d/r/h/y D:\vcd I:\d\vcd
)

后面还有十个这样的命令,以使能备份多个目录中的文件,怎么我运行后只运行了第一个命令,第二个没有运行,是还要在第一个命令的下面再加什么东西吗
第12楼 cjfcjf222 发表于 2007-02-09 05:53
初级用户 发帖 77 积分 172
已解决,是我的BAT文件里有S&R&SV9这样一个目录在,所以不执行下一步了
第13楼 002500 发表于 2007-02-09 08:27
初级用户 发帖 18 积分 63
xcopy
xcopy a:\ b:\ /s /y /d

[ Last edited by 002500 on 2007-2-9 at 08:59 AM ]
第14楼 ding520 发表于 2007-02-17 03:37
初级用户 发帖 15 积分 29
强呢 收藏ing
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023