Board logo

标题: 求助:批处理中如何检查某一文件是否更新 [打印本页]

作者: hq413     时间: 2007-6-7 00:10    标题: 求助:批处理中如何检查某一文件是否更新

如何在批处理中检查文件abc.doc的文件大小和修改时间是否改变?
abc.doc原来的文件大小和修改时间已保存在文件1.txt中,1.txt中的内容是由命令"dir abc.doc >1.txt"输出得到的.
作者: HAT     时间: 2007-6-7 12:47
建议使用这段代码替换"dir abc.doc >1.txt"来得到abc.doc原来的文件大小和修改时间,这样方便后面的处理:
@echo off
set FileName=abc.doc
for %%i in (%FileName%) do (
  echo %%~ti %%~zi>1.txt
  )
然后使用这段代码即可作出判断:
@echo off
set FileName=abc.doc
for /f "tokens=1,2,3,4 delims= " %%a in (1.txt) do (
  set OldTime=%%a %%b %%c
  set OldSize=%%d
  )
for %%i in (abc.doc) do (
  set CurrTime=%%~ti
  set CurrSize=%%~zi
  )

if "%OldTime%" equ "%CurrTime%" (
  echo 修改时间未改变
  ) else (
  echo 修改时间已改变
  )

if %OldSize% equ %CurrSize% (
  echo 文件大小未改变
  ) else (
  echo 文件大小已改变
  )

作者: hq413     时间: 2007-6-7 12:56
谢谢。
作者: yywd     时间: 2007-12-29 09:27
@echo off
set FileName=abc.doc
for /f "tokens=1,2,3,4 delims= " %%a in (1.txt) do (
  set OldTime=%%a %%b %%c
  set OldSize=%%d
  )
for %%i in (abc.doc) do (
  set CurrTime=%%~ti
  set CurrSize=%%~zi
  )

if "%OldTime%" equ "%CurrTime%" (
  echo 修改时间未改变
  ) else (
  echo 修改时间已改变
  )

if %OldSize% equ %CurrSize% (
  echo 文件大小未改变
  ) else (
  echo 文件大小已改变
  )
好象不能用呀, 改一下吧
作者: HAT     时间: 2007-12-29 14:54
//好象不能用呀, 改一下吧

给点详细信息行么?