中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-01 07:49
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何判定文件是否被修改过, 查看 1,242 回复 9
楼 主 如何判定文件是否被修改过, 发表于 2010-02-02 20:23 ·  中国 广东 惠州 联通
初级用户
★★
积分 65
发帖 61
注册 2009-06-15 08:51
17年会员
UID 147446
性别 女
状态 离线
如何判定文件是否被修改过,
我相用批处理定时检查某个记事本文件是否被写入,然后自动打开来.

请高手帮忙.不胜感激.
2 发表于 2010-02-02 21:03 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
你准备你什么标准来判断文件是否被写入?
3 发表于 2010-02-02 22:22 ·  中国 湖南 湘潭 电信
初级用户
积分 23
发帖 19
注册 2009-07-10 07:01
17年会员
UID 149125
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2" %%i in ('dir a.txt^| find "a.txt"') do set "str=%%i%%j"
if not EXIST _a.txt (
echo !str!>_a.txt
echo 第一次执行,记录文件修改时间。
) else (
set /p str2=<_a.txt
if "!str!"=="!str2!" (
echo 文件未被修改
) else (
echo 记录的修改时间为!str2!
echo 实际的修改时间为!str!
echo 文件已被修改,重新记录修改时间
echo !str!>_a.txt
)
)
pause>nul

这个是基于文件的修改时间来确定的。
另外一种方法是,将文件备份一下。之后比较一下就可以了。
4 发表于 2010-02-03 11:40 ·  中国 广东 电信
初级用户
积分 27
发帖 13
注册 2009-09-01 07:20
16年会员
UID 151293
性别 男
状态 离线
方法是有滴:

我提示一下: 批处理实现通过MD5来判断文件内容是否被更改过...

使用此方法非常准确。

也LS说的,只检测修改时间,不是很准确..

[ Last edited by bbsphixy on 2010-2-3 at 11:43 ]
5 发表于 2010-02-07 16:32 ·  中国 广东 惠州 联通
初级用户
★★
积分 65
发帖 61
注册 2009-06-15 08:51
17年会员
UID 147446
性别 女
状态 离线
楼上确实可以做到.有没有更简单的.
6 发表于 2010-02-07 17:05 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
备份一份

FC /B 命令比较下

看返回值就行了。
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
7 发表于 2010-02-07 20:24 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
参考slore兄思路写的(有系统局限):
@echo off
set a=a.txt
set b=b.txt
fc /b %a% %b%|findstr "找不到相异处">nul 2>nul &&echo. %a% 与 %b% 相同&&pause&&exit
echo. %a% 与 %b% 不同
pause
8 发表于 2010-02-07 21:29 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
我本意是屏蔽回显(因为可能差距太多)
直接看 errorlevel
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
9 发表于 2010-02-07 23:19 ·  中国 山东 联通
新手上路
九影蓝翼
积分 18
发帖 18
注册 2009-11-27 07:46
16年会员
UID 155451
性别 男
状态 离线
方法一:利用md5值+if 语句
方法二:备份文件对比,相关语句
findstr /x /v /g:1.txt 2.txt>differ.txt
10 发表于 2010-02-11 00:20 ·  中国 广东 惠州 联通
初级用户
★★
积分 65
发帖 61
注册 2009-06-15 08:51
17年会员
UID 147446
性别 女
状态 离线
谢谢各位出手
论坛跳转: