中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 14:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何对比两个TXT如不同就执行某程序 查看 804 回复 4
楼 主 如何对比两个TXT如不同就执行某程序 发表于 2008-05-19 17:43 ·  中国 山东 青岛 联通
初级用户
积分 51
发帖 18
注册 2007-03-28 06:53
19年会员
UID 83154
性别 男
状态 离线
如A.txt是本地文本,里面的是518
B.txt是服务器上如192.168.0.**里面的是618 对比A和B,如发现相同就退出,不同就执行某程序/
2 发表于 2008-05-19 18:03 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
如果a.txt是本地文件
且每个文件中的数值都在第一行
远程机器b.txt所在文件夹为admin$

@echo off&setlocal enabledelayedexpansion
set/p a=<a.txt
for /l %%a in (1 1 255) do (
set/p b=<\\192.168.0.%%a\admin$\b.txt
if/i "%a%"="!b!" (goto :eof) else (start ...)
)

未测试,根据自己要求进行修改
3 发表于 2008-05-19 18:29 ·  中国 山东 青岛 联通
初级用户
积分 51
发帖 18
注册 2007-03-28 06:53
19年会员
UID 83154
性别 男
状态 离线
2楼谢谢,测试好像不通过。
想用COMP
comp A.txt b.txt 比较A与B
if %ERRORLEVEL% EQU 1 goto not 如不同返回1 执行
goto eof 不同执行exit
:not
start A.EXE
exit
:eof
exit

测试了一下可以对比,但是有个问题每次都询问是否要比较更多文件?参数里面没有去掉更多对比。

还有更好的办法吗?

[ Last edited by wjlove2002 on 2008-5-19 at 06:33 PM ]
4 发表于 2008-05-19 18:58 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Originally posted by wjlove2002 at 2008-5-19 06:29 PM:
2楼谢谢,测试好像不通过。
想用COMP
comp A.txt b.txt 比较A与B
if %ERRORLEVEL% EQU 1 goto not 如不同返回1 执行
goto eof 不同执行exit
:not
start ...

echo n|comp a.txt b.txt
5 发表于 2008-05-19 19:02 ·  中国 山东 青岛 联通
初级用户
积分 51
发帖 18
注册 2007-03-28 06:53
19年会员
UID 83154
性别 男
状态 离线
谢谢,测试通过。
论坛跳转: