用批处理如何获取某个文件的修改日期

卡巴时间更新成功的话会修改based.mft这个文件的时间,我巡检时通过时间判断是否更新成功,这个怎么编写呀?我通过dir保存成1.txt,但怎么获取到他的日期//bas... 卡巴时间更新成功的话会修改based.mft这个文件的时间,我巡检时通过时间判断是否更新成功,这个怎么编写呀?我通过dir保存成1.txt,但怎么获取到他的日期
//based.mft卡巴斯基更新的文件
2010/06/08 12:27 13,850 basecfec.kdc
2010/06/08 12:27 15,293 basecffc.kdc
2016/08/15 02:01 16,875 based.mft
按天更新的,能输出最近更新的时间就可以了
展开
 我来答
斩天及
2016-08-15 · TA获得超过8832个赞
知道大有可为答主
回答量:8460
采纳率:0%
帮助的人:4062万
展开全部

  你是想读取based.mft这个文件吗?还是只要最后1个时间?如果只要最后修改的时间,不读文件也行的,直接读based.mft这个文件本身的修改时间即可,用%~t1即可,具体结构如下:

……其他代码……
Call:getLastTime based.mft文件的路径
……其他代码……
goto:eof
:getLastTime
echo %~t1
goto:eof
如果你是想输出最后5行,就得读取based.mft文件了,代码结构如下:

set n=5:这里的5改成3就是最后3行
set /a Line=0
for "usebackq" %%i in ("based.mft文件的路径") do set /a Line+=1
set Line-=%n%
more +%Line% "based.mft文件的路径"
更多追问追答
追问
谢谢答复,是我没表达清楚,我只需要这个文件的最后更新日期,精确到天就可以了,based.mft如果在TXT里怎么弄,因为本来是在文件夹下面,但我用DIR>1.TXT把他放到txt里了,我现在的目的只有一个,就是找到based.mft的最后更新日期(天)可以给我讲下方法吗
追答

那你的那个txt文件里确定是保存了它的最后修改时间吧?那就遍历那个txt文件,用findstr查找。

@echo off
set File=%~1
set Str=based.mft
for /f "usebackq" %%i in (`more "%File%"^|findstr /i "%Str%"`) do echo %%i


但你既然知道这个文件的路径,那么用第1个方法最好,而且你应该看到我是定义了一个“函数”(虽然批处理中没有这个概念),所以在你那个批处理及其父批处理中都可以调用getLastTime函数,输出一个文件的最后修改时间,至于你想只保留到天,直接截断即可。


:getLastTime
for /f "usebackq" %%i in (`echo %~t1`) do echo %%i
goto:eof
xxpinqz
推荐于2017-10-03 · TA获得超过1323个赞
知道小有建树答主
回答量:1055
采纳率:0%
帮助的人:1312万
展开全部
@echo off
::修改下一行的文件路径
set "f=d:\program files\abcd\based.mft"
echo,今天是:%date%
for %%a in ("%f%") do echo,%f%文件最近更新于:%%~ta
pause
追问
谢谢答复,但我只要最近的更新日期,但这个文件是在TXT里怎么读取set "f=d:\1.txt\based.mft"
追答
@echo off
for /f "tokens=1,4" %%a in (1.txt) do if "%%b"=="based.mft" echo,%%a
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式