bat 查找同名文件,找出最新日期的文件
我需要查找一个文件,比如文件名时333.txt,但是我目录里的这个文件有很多,我需要取日期最新的那本txt,求教如何写这个bat?...
我需要查找一个文件,比如文件名时333.txt,但是我目录里的这个文件有很多,我需要取日期最新的那本txt,求教如何写这个bat?
展开
1个回答
展开全部
假定查找的目录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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询