标题: 如何判定文件是否被修改过,
[打印本页]
作者: huangshuirun
时间: 2010-2-2 20:23
标题: 如何判定文件是否被修改过,
如何判定文件是否被修改过,
我相用批处理定时检查某个记事本文件是否被写入,然后自动打开来.
请高手帮忙.不胜感激.
作者: HAT
时间: 2010-2-2 21:03
你准备你什么标准来判断文件是否被写入?
作者: sysplay
时间: 2010-2-2 22:22
@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
这个是基于文件的修改时间来确定的。
另外一种方法是,将文件备份一下。之后比较一下就可以了。
作者: bbsphixy
时间: 2010-2-3 11:40
方法是有滴:
我提示一下: 批处理实现通过MD5来判断文件内容是否被更改过...
使用此方法非常准确。
也LS说的,只检测修改时间,不是很准确..
[
Last edited by bbsphixy on 2010-2-3 at 11:43 ]
作者: huangshuirun
时间: 2010-2-7 16:32
楼上确实可以做到.有没有更简单的.
作者: slore
时间: 2010-2-7 17:05
备份一份
FC /B 命令比较下
看返回值就行了。
作者: radem
时间: 2010-2-7 20:24
参考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
作者: slore
时间: 2010-2-7 21:29
我本意是屏蔽回显(因为可能差距太多)
直接看 errorlevel
作者: bluewing009
时间: 2010-2-7 23:19
方法一:利用md5值+if 语句
方法二:备份文件对比,相关语句
findstr /x /v /g:1.txt 2.txt>differ.txt
作者: huangshuirun
时间: 2010-2-11 00:20
谢谢各位出手