中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-26 05:28
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:批处理中如何检查某一文件是否更新 查看 822 回复 4
楼 主 求助:批处理中如何检查某一文件是否更新 发表于 2007-06-07 00:10 ·  中国 江苏 无锡 电信
新手上路
积分 8
发帖 3
注册 2007-06-06 19:24
19年会员
UID 90476
性别 男
状态 离线
如何在批处理中检查文件abc.doc的文件大小和修改时间是否改变?
abc.doc原来的文件大小和修改时间已保存在文件1.txt中,1.txt中的内容是由命令"dir abc.doc >1.txt"输出得到的.
2 发表于 2007-06-07 12:47 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
建议使用这段代码替换"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 文件大小已改变
)
3 发表于 2007-06-07 12:56 ·  中国 江苏 常州 电信
新手上路
积分 8
发帖 3
注册 2007-06-06 19:24
19年会员
UID 90476
性别 男
状态 离线
谢谢。
4 发表于 2007-12-29 09:27 ·  中国 广东 深圳 宝安区 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
20年会员
UID 45117
状态 离线
@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 文件大小已改变
)
好象不能用呀, 改一下吧
5 发表于 2007-12-29 14:54 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
//好象不能用呀, 改一下吧

给点详细信息行么?
论坛跳转: