bat 查找同名文件,找出最新日期的文件

我需要查找一个文件,比如文件名时333.txt,但是我目录里的这个文件有很多,我需要取日期最新的那本txt,求教如何写这个bat?... 我需要查找一个文件,比如文件名时333.txt,但是我目录里的这个文件有很多,我需要取日期最新的那本txt,求教如何写这个bat? 展开
 我来答
yyykkkyyyy
2014-11-05 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3290万
展开全部

假定查找的目录d:\abc

@echo off&setlocal enabledelayedexpansion
set "fn=333.txt"
cd/d "d:\abc"
for /f "delims=" %%i in ('dir/b/s/a-d "%fn%"'
)do if "!newtime!" lss "%%~ti" (
  set "newtime=%%~ti"
  set "newfile=%%i")
if defined newfile (
  echo 最新的%fn% 是 !newfile! 时间为 %newtime%
)else echo 未找到%fn%
pause
追问
可能我的问题描述不正确,以下是我文件的树结构:
C:\temp\1\gtre、C:\temp\1\gtre- Copy、C:\temp\1\gtre- Copy2、
C:\temp\1\gtre- Copy3
在这4个文件中,可能有333.txt这个文件,可能没有,需要找最新的这个文本文件。
追答
如果是列举的多项范围,用空格分隔如实写在第2行后,注意每项的末尾如有\符要去掉,如某路径名本身带空格则此路径必须加引号
@echo off&setlocal enabledelayedexpansion
set pas=C:\temp\1\gtre "C:\temp\1\gtre- Copy" "C:\temp\1\gtre- Copy2" "C:\temp\1\gtre- Copy3"
set "fn=333.txt"
for %%i in (%pas%)do (
for /f "delims=" %%j do (
'dir/b/s/a-d "%%~i\%fn%" 2^>nul')do (
echo %%~tj %%j
if "!newtime!" lss "%%~tj" (
set "newtime=%%~tj"
set "newfile=%%j")
))
if defined newfile (
echo 最新的是 !newfile! 时间为 %newtime%
)else echo 未找到%fn%
pause
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式