|
huangshuirun
初级用户
积分 65
发帖 61
注册 2009-6-15
状态 离线
|
『楼 主』:
如何判定文件是否被修改过,
如何判定文件是否被修改过,
我相用批处理定时检查某个记事本文件是否被写入,然后自动打开来.
请高手帮忙.不胜感激.
|
|
2010-2-2 20:23 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
2 楼』:
你准备你什么标准来判断文件是否被写入?
|
|
|
2010-2-2 21:03 |
|
|
sysplay
初级用户
积分 23
发帖 19
注册 2009-7-10
状态 离线
|
『第
3 楼』:
@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 这个是基于文件的修改时间来确定的。
另外一种方法是,将文件备份一下。之后比较一下就可以了。
|
|
2010-2-2 22:22 |
|
|
bbsphixy
初级用户
积分 27
发帖 13
注册 2009-9-1
状态 离线
|
『第
4 楼』:
方法是有滴:
我提示一下: 批处理实现通过MD5来判断文件内容是否被更改过...
使用此方法非常准确。
也LS说的,只检测修改时间,不是很准确..
[ Last edited by bbsphixy on 2010-2-3 at 11:43 ]
|
|
2010-2-3 11:40 |
|
|
huangshuirun
初级用户
积分 65
发帖 61
注册 2009-6-15
状态 离线
|
『第
5 楼』:
楼上确实可以做到.有没有更简单的.
|
|
2010-2-7 16:32 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
6 楼』:
备份一份
FC /B 命令比较下
看返回值就行了。
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2010-2-7 17:05 |
|
|
radem
高级用户
CMD感染者
积分 691
发帖 383
注册 2008-5-23
状态 离线
|
『第
7 楼』:
参考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
|
|
|
2010-2-7 20:24 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
8 楼』:
我本意是屏蔽回显(因为可能差距太多)
直接看 errorlevel
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2010-2-7 21:29 |
|
|
bluewing009
新手上路
九影蓝翼
积分 18
发帖 18
注册 2009-11-27
状态 离线
|
『第
9 楼』:
方法一:利用md5值+if 语句
方法二:备份文件对比,相关语句
findstr /x /v /g:1.txt 2.txt>differ.txt
|
|
2010-2-7 23:19 |
|
|
huangshuirun
初级用户
积分 65
发帖 61
注册 2009-6-15
状态 离线
|
|
2010-2-11 00:20 |
|