楼 主
[求助]比较文件内容
发表于 2006-12-02 14:10 · 中国 四川 泸州 电信
初级用户
★
积分 54 发帖 27 注册 2006-12-02 11:46 UID 72370 性别 男
状态 离线
两个文件,服务器一个,客户机一个,客户机的文件旧了。要替换成新的。现在又不知道那些替换了。我想写一个批处理来解决。怎样写?
我的思路是这样的。
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 服务器文件到客户机,否则,
获得计算机名。将计算机名写回服务器文本文件中,报告已经完成。
我这里多台计算机同时启动。服务器忙不过来。我就不知道那些文件替换了。那些没有。想编个批处理,又编不好,以前没好好学!惭愧呀。
那位大大帮我解决一下。我先谢了!!
第 2 楼
发表于 2006-12-02 20:14 · 中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226 发帖 1,737 注册 2006-03-10 00:38 UID 51697 来自 成都
状态 离线
好好看一下 xcopy 中 /d 参数的帮助。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 3 楼
发表于 2006-12-02 22:15 · 中国 四川 泸州 电信
初级用户
★
积分 54 发帖 27 注册 2006-12-02 11:46 UID 72370 性别 男
状态 离线
namejm 兄 XCOPY /D 不能达到我的要求,
1.局域网多台同时拷贝。不一定就全部拷贝成功。其中还有没拷贝成功而造成文件损坏的。
2.比较日期只是其中一个问题。主要是学习对文件读的批处理写法。
3.如果XCOPY /D就可以搞定。那我直接覆盖不更简单?还要这么痛苦干嘛?
4.这里是批处理室。研究批处理的写法可是重中之重哦。
第 4 楼
发表于 2006-12-03 00:00 · 中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687 发帖 1,467 注册 2005-08-08 12:00 UID 44210
状态 离线
/D:m-d-y 复制在指定日期或指定日期以后改变的文件。
如果没有提供日期,只复制那些源时间比目标时间新的文件 。
Originally posted by lbccyxs at 2006-12-2 10:15:
......
4.这里是批处理室。研究批处理的写法可是重中之重哦。
如果直接用“copy/d * *”可以搞定的,干吗还要那么多的写法?
PS:想象我以前写过的一段文件名手工排序脚本,10个名称就写了
800行 (当然大部分是相同的),学了for用法、变量延迟后修改,只有
几十行 了。
批处理是能简尽量简,利于提高效率。
第 5 楼
发表于 2006-12-03 01:35 · 中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226 发帖 1,737 注册 2006-03-10 00:38 UID 51697 来自 成都
状态 离线
Re lbccyxs『第 3 楼』:
1、所有的批处理命令,都不能保证在特殊情况下能100%拷贝成功,而xcopy中的 /c 具备有限的容错功能,除它之外,我实在找不出还有什么比它更强大的复制命令;
2、读文件的具体含义是什么?复制一个的时候,就在屏幕上显示一个文件的路径?那你还得好好看完 xcopy 的帮助,了解其他的用法。xcopy 是比较强悍的,若非如此,微软不会在copy命令已经存在的情况下,再给它添加一个 X 字母,正如 find 和 findstr 一样;
3、如果不用 xcopy /d,你就得每次都把所有的文件全部复制一次,两者效率如何,测试便知;
4、呵呵,xcopy /d 当然是批处理文件里的命令,所谓的批处理,不过是众多命令语句的有机组合而已。如果一句话能搞定的话,没必要再去写其他的命令,语句越多,并不表明越有水平。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 6 楼
发表于 2006-12-03 02:05 · 中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103 发帖 1,744 注册 2006-01-20 13:00 UID 49241 性别 男 来自 甘肃.临泽
状态 离线
第 7 楼
发表于 2006-12-03 02:20 · 中国 四川 泸州 电信
初级用户
★
积分 54 发帖 27 注册 2006-12-02 11:46 UID 72370 性别 男
状态 离线
如果用XCOPY /D 搞得定的话。我肯定不得问你。我就是用XCOPY 搞不定才没办法问这个问题。如果是单独的一台计算机,XCOPY 是可以搞定的,关键是多台同时启动,XCOPY 有些就已经完成 ,有些就不能,而这个批处理就是防止没有成功的补救措施,当然,可能我的思路有问题,你们提供个方案给我考。
我要求的是多台计算机同时拷贝网络中的一个文件,替换本地的文件,并且确保替换成功。 “开机就自动执行这个命令”
各位大大,给个方案!!!谢谢了!
第 8 楼
发表于 2006-12-03 02:32 · 中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226 发帖 1,737 注册 2006-03-10 00:38 UID 51697 来自 成都
状态 离线
在单机环境下,xcopy 不能复制的情况在我的机子上也出现过,不过那个文件可能是在别人的机子上加上了用户权限的,在Windows下用右键的复制+粘贴功能也没法成功复制过去。其他还有什么情形用xcopy不能复制的我就不太清楚了,或许xcopy在网络环境下容易出错吧。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 9 楼
发表于 2006-12-03 02:39 · 中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103 发帖 1,744 注册 2006-01-20 13:00 UID 49241 性别 男 来自 甘肃.临泽
状态 离线
第 10 楼
发表于 2006-12-03 02:40 · 中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103 发帖 1,744 注册 2006-01-20 13:00 UID 49241 性别 男 来自 甘肃.临泽
状态 离线
net use \\ip\ipc$ pass /u:name &© \\ip\c$\test.txt d:\
第 11 楼
发表于 2006-12-03 02:52 · 中国 四川 泸州 电信
初级用户
★
积分 54 发帖 27 注册 2006-12-02 11:46 UID 72370 性别 男
状态 离线
Originally posted by namejm at 2006-12-2 01:32 PM:
在单机环境下,xcopy 不能复制的情况在我的机子上也出现过,不过那个文件可能是在别人的机子上加上了用户权限的,在Windows下用右键的复制+粘蠮..
斑竹你好:
XCOPY 在网络中是完全可以使用,用户权限也是管理员权限,没有限制,主要是当多台计算机同时启动时,即使开机延时10秒后(确保网络连接)在执行这个XCOPY命令,还是有的计算机可能网络没有响应就强制断开,从而造成拷贝失败。
这个问题捆绕了我很长的时间了,就是没找到解决的方案,希望斑竹能帮我解决,谢谢了。
第 12 楼
发表于 2006-12-06 15:50 · 中国 广西 梧州 电信
初级用户
★
积分 22 发帖 11 注册 2006-05-11 11:29 UID 55321
状态 离线
第 13 楼
发表于 2006-12-07 03:45 · 中国 河南 郑州 电信
中级用户
★★
积分 439 发帖 170 注册 2006-01-09 20:29 UID 48707
状态 离线
xcopy /d/s/e/i/y
可以实现对比更新
bat c c++
第 14 楼
发表于 2006-12-11 06:57 · 中国 河南 郑州 电信
中级用户
★★
积分 439 发帖 170 注册 2006-01-09 20:29 UID 48707
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正