![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-29 07:07 |
共 47,816 主题排行 / 349,916 发帖 / 今日 2 篇 / 48,265 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]比较文件内容 |
| 可打印版本 3,831 / 13 |
| 第1楼 lbccyxs | 发表于 2006-12-02 14:10 |
| 初级用户 发帖 27 积分 54 | |
|
[求助]比较文件内容 两个文件,服务器一个,客户机一个,客户机的文件旧了。要替换成新的。现在又不知道那些替换了。我想写一个批处理来解决。怎样写?
我的思路是这样的。 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楼 namejm | 发表于 2006-12-02 20:14 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
好好看一下 xcopy 中 /d 参数的帮助。
|
|
| 第3楼 lbccyxs | 发表于 2006-12-02 22:15 |
| 初级用户 发帖 27 积分 54 | |
|
namejm 兄 XCOPY /D 不能达到我的要求,
1.局域网多台同时拷贝。不一定就全部拷贝成功。其中还有没拷贝成功而造成文件损坏的。 2.比较日期只是其中一个问题。主要是学习对文件读的批处理写法。 3.如果XCOPY /D就可以搞定。那我直接覆盖不更简单?还要这么痛苦干嘛? 4.这里是批处理室。研究批处理的写法可是重中之重哦。 |
|
| 第4楼 zh159 | 发表于 2006-12-03 00:00 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
/D:m-d-y 复制在指定日期或指定日期以后改变的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。
Originally posted by lbccyxs at 2006-12-2 10:15: 如果直接用“copy/d * *”可以搞定的,干吗还要那么多的写法? PS:想象我以前写过的一段文件名手工排序脚本,10个名称就写了800行(当然大部分是相同的),学了for用法、变量延迟后修改,只有几十行了。 批处理是能简尽量简,利于提高效率。 |
|
| 第5楼 namejm | 发表于 2006-12-03 01:35 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
Re lbccyxs『第 3 楼』:
1、所有的批处理命令,都不能保证在特殊情况下能100%拷贝成功,而xcopy中的 /c 具备有限的容错功能,除它之外,我实在找不出还有什么比它更强大的复制命令; 2、读文件的具体含义是什么?复制一个的时候,就在屏幕上显示一个文件的路径?那你还得好好看完 xcopy 的帮助,了解其他的用法。xcopy 是比较强悍的,若非如此,微软不会在copy命令已经存在的情况下,再给它添加一个 X 字母,正如 find 和 findstr 一样; 3、如果不用 xcopy /d,你就得每次都把所有的文件全部复制一次,两者效率如何,测试便知; 4、呵呵,xcopy /d 当然是批处理文件里的命令,所谓的批处理,不过是众多命令语句的有机组合而已。如果一句话能搞定的话,没必要再去写其他的命令,语句越多,并不表明越有水平。 |
|
| 第6楼 vkill | 发表于 2006-12-03 02:05 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
没有看明白
|
|
| 第7楼 lbccyxs | 发表于 2006-12-03 02:20 |
| 初级用户 发帖 27 积分 54 | |
|
如果用XCOPY /D 搞得定的话。我肯定不得问你。我就是用XCOPY 搞不定才没办法问这个问题。如果是单独的一台计算机,XCOPY 是可以搞定的,关键是多台同时启动,XCOPY 有些就已经完成 ,有些就不能,而这个批处理就是防止没有成功的补救措施,当然,可能我的思路有问题,你们提供个方案给我考。
我要求的是多台计算机同时拷贝网络中的一个文件,替换本地的文件,并且确保替换成功。 “开机就自动执行这个命令” 各位大大,给个方案!!!谢谢了! |
|
| 第8楼 namejm | 发表于 2006-12-03 02:32 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
在单机环境下,xcopy 不能复制的情况在我的机子上也出现过,不过那个文件可能是在别人的机子上加上了用户权限的,在Windows下用右键的复制+粘贴功能也没法成功复制过去。其他还有什么情形用xcopy不能复制的我就不太清楚了,或许xcopy在网络环境下容易出错吧。
|
|
| 第9楼 vkill | 发表于 2006-12-03 02:39 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
copy 远程机要 有net use 的权限
|
|
| 第10楼 vkill | 发表于 2006-12-03 02:40 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
net use \\ip\ipc$ pass /u:name &© \\ip\c$\test.txt d:\
|
|
| 第11楼 lbccyxs | 发表于 2006-12-03 02:52 |
| 初级用户 发帖 27 积分 54 | |
Originally posted by namejm at 2006-12-2 01:32 PM: 斑竹你好: XCOPY 在网络中是完全可以使用,用户权限也是管理员权限,没有限制,主要是当多台计算机同时启动时,即使开机延时10秒后(确保网络连接)在执行这个XCOPY命令,还是有的计算机可能网络没有响应就强制断开,从而造成拷贝失败。 这个问题捆绕了我很长的时间了,就是没找到解决的方案,希望斑竹能帮我解决,谢谢了。 |
|
| 第12楼 bosskof | 发表于 2006-12-06 15:50 |
| 初级用户 发帖 11 积分 22 | |
|
robocopy 吧
|
|
| 第13楼 a9319751 | 发表于 2006-12-07 03:45 |
| 中级用户 发帖 170 积分 439 | |
|
xcopy /d/s/e/i/y
可以实现对比更新 |
|
| 第14楼 a9319751 | 发表于 2006-12-11 06:57 |
| 中级用户 发帖 170 积分 439 | |
|
/V 验证每个新文件。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |