中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]比较文件内容 上一主题 | 下一主题
lbccyxs
初级用户





积分 54
发帖 27
注册 2006-12-2
状态 离线
『楼 主』:  [求助]比较文件内容

两个文件,服务器一个,客户机一个,客户机的文件旧了。要替换成新的。现在又不知道那些替换了。我想写一个批处理来解决。怎样写?
我的思路是这样的。
del a*.*
dir d:\ccc.txt>aaa.txt  “ccc.txt就是要替换的文件”
for /f "tokens=1  " %%i in (aaa.txt) do @echo %%i >a1.txt
findstr /C:2006 a1.txt >a2.TXT

::a2.txt 的内容也有了。如2006-12-01
::下面这个怎么写,哪个大大帮我一下,

如果A2.TXT 的内容不是2006-12-01 那COPY 服务器文件到客户机,否则,
获得计算机名。将计算机名写回服务器文本文件中,报告已经完成。


我这里多台计算机同时启动。服务器忙不过来。我就不知道那些文件替换了。那些没有。想编个批处理,又编不好,以前没好好学!惭愧呀。
那位大大帮我解决一下。我先谢了!!

2006-12-2 14:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  好好看一下 xcopy 中 /d 参数的帮助。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-2 20:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lbccyxs
初级用户





积分 54
发帖 27
注册 2006-12-2
状态 离线
『第 3 楼』:  

namejm  兄  XCOPY /D 不能达到我的要求,
1.局域网多台同时拷贝。不一定就全部拷贝成功。其中还有没拷贝成功而造成文件损坏的。
2.比较日期只是其中一个问题。主要是学习对文件读的批处理写法。
3.如果XCOPY /D就可以搞定。那我直接覆盖不更简单?还要这么痛苦干嘛?
4.这里是批处理室。研究批处理的写法可是重中之重哦。

2006-12-2 22:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 4 楼』:  

/D:m-d-y     复制在指定日期或指定日期以后改变的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件

  Quote:
Originally posted by lbccyxs at 2006-12-2 10:15:
......
4.这里是批处理室。研究批处理的写法可是重中之重哦。

如果直接用“copy/d * *”可以搞定的,干吗还要那么多的写法?

PS:想象我以前写过的一段文件名手工排序脚本,10个名称就写了800行(当然大部分是相同的),学了for用法、变量延迟后修改,只有几十行了。
批处理是能简尽量简,利于提高效率。

2006-12-3 00:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

Re lbccyxs『第 3 楼』:  

  1、所有的批处理命令,都不能保证在特殊情况下能100%拷贝成功,而xcopy中的 /c 具备有限的容错功能,除它之外,我实在找不出还有什么比它更强大的复制命令;

  2、读文件的具体含义是什么?复制一个的时候,就在屏幕上显示一个文件的路径?那你还得好好看完 xcopy 的帮助,了解其他的用法。xcopy 是比较强悍的,若非如此,微软不会在copy命令已经存在的情况下,再给它添加一个 X 字母,正如 find 和 findstr 一样;

  3、如果不用 xcopy /d,你就得每次都把所有的文件全部复制一次,两者效率如何,测试便知;

  4、呵呵,xcopy /d 当然是批处理文件里的命令,所谓的批处理,不过是众多命令语句的有机组合而已。如果一句话能搞定的话,没必要再去写其他的命令,语句越多,并不表明越有水平。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-3 01:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 6 楼』:  

没有看明白

2006-12-3 02:05
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
lbccyxs
初级用户





积分 54
发帖 27
注册 2006-12-2
状态 离线
『第 7 楼』:  

如果用XCOPY /D 搞得定的话。我肯定不得问你。我就是用XCOPY 搞不定才没办法问这个问题。如果是单独的一台计算机,XCOPY 是可以搞定的,关键是多台同时启动,XCOPY 有些就已经完成 ,有些就不能,而这个批处理就是防止没有成功的补救措施,当然,可能我的思路有问题,你们提供个方案给我考。
        我要求的是多台计算机同时拷贝网络中的一个文件,替换本地的文件,并且确保替换成功。    “开机就自动执行这个命令”
      各位大大,给个方案!!!谢谢了!

2006-12-3 02:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 8 楼』:  

  在单机环境下,xcopy 不能复制的情况在我的机子上也出现过,不过那个文件可能是在别人的机子上加上了用户权限的,在Windows下用右键的复制+粘贴功能也没法成功复制过去。其他还有什么情形用xcopy不能复制的我就不太清楚了,或许xcopy在网络环境下容易出错吧。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-12-3 02:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 9 楼』:  

copy 远程机要 有net use 的权限

2006-12-3 02:39
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 10 楼』:  

net use \\ip\ipc$ pass /u:name &&copy \\ip\c$\test.txt d:\

2006-12-3 02:40
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
lbccyxs
初级用户





积分 54
发帖 27
注册 2006-12-2
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by namejm at 2006-12-2 01:32 PM:
  在单机环境下,xcopy 不能复制的情况在我的机子上也出现过,不过那个文件可能是在别人的机子上加上了用户权限的,在Windows下用右键的复制+粘蠮..

斑竹你好:
       XCOPY 在网络中是完全可以使用,用户权限也是管理员权限,没有限制,主要是当多台计算机同时启动时,即使开机延时10秒后(确保网络连接)在执行这个XCOPY命令,还是有的计算机可能网络没有响应就强制断开,从而造成拷贝失败。
    这个问题捆绕了我很长的时间了,就是没找到解决的方案,希望斑竹能帮我解决,谢谢了。

2006-12-3 02:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bosskof
初级用户





积分 22
发帖 11
注册 2006-5-11
状态 离线
『第 12 楼』:  

robocopy 吧

2006-12-6 15:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 13 楼』:  

xcopy /d/s/e/i/y
可以实现对比更新



bat c c++
2006-12-7 03:45
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 14 楼』:  

/V           验证每个新文件。



bat c c++
2006-12-11 06:57
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: