标题: 判断文件修改日期,并显示文件名。
[打印本页]
作者: lmm
时间: 2010-6-20 11:56
标题: 判断文件修改日期,并显示文件名。
在d:\z目录下有:
名称 修改日期
1.txt 2010-6-12 14:36
2.txt 2010-6-10 17:12
3.txt 2010-6-3 12:23
4.txt 2010-6-20 9:36
我想显示出4.txt 这个文件。
自己写的代码不行。
for /r d:\z %%i in (*.txt) do if "%%~ti" LSS "2010-6-20 00:00" echo %%i
请各位同仁写出正确的代码。谢谢!!!
作者: Hanyeguxing
时间: 2010-6-20 14:43
@echo off&setlocal enabledelayedexpansion
for %%a in ("d:\z\*.txt") do (
for /F "tokens=1-5 delims=:-/ " %%b in ("%%~ta") do set c=0%%c&set d=0%%d&set e=0%%e&set f=0%%f
if "%%b-!c:~-2!-!d:~-2! !e:~-2!:!f:~-2!" gtr "2010-06-20 00:00" echo.%%a
)
pause
[
Last edited by Hanyeguxing on 2010-6-20 at 15:26 ]
作者: lmm
时间: 2010-6-20 15:15
Hanyeguxing你编制的代码,不行。(不能显示文件名4.txt)
作者: Hanyeguxing
时间: 2010-6-20 15:18
打错一个字母,你重新测试
作者: lmm
时间: 2010-6-20 19:11
Hanyeguxing你编制的代码,还是不行。(通过测试不行)
代码中的%%~ti 不是%%~ta.
%%~ti------将%%i扩展到文件的时间/时间。(不知道对不对)
作者: lmm
时间: 2010-6-23 22:19
非常感谢Hanyeguxing对我的回复和指导,下面代码与各位同仁共享。
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /a-d d:\z\*.txt') do (
set num=%%~ta
set num=!num:~0,10!
set num=!num:-=!
if !num! gqu 20100620 echo %%a
)
pause