在所有子文件夹中查找上次修改的文件

时间:2014-11-12 19:07:26

标签: batch-file timestamp batch-processing last-modified datemodified

我需要一个Windows批处理代码来查找特定文件夹的所有子文件夹中所有文件中的最后一个修改过的文件。

它似乎并不像看起来那么简单。

某些文件可能在同一分钟内被修改,但在不同的秒钟内。我只需要最新的一个。

1 个答案:

答案 0 :(得分:0)

@echo on
    setlocal enableextensions disabledelayedexpansion

    set "root=c:\somewhere"

    for %%r in ("%root%\.") do for /f "tokens=3,*" %%a in ('
        robocopy "%%~fr." "%%~fr." /l /nocopy /s /is /njh /njs /ndl /nc /ns /ts 
        ^| sort /r 
        ^| findstr /n "^"
        ^| findstr /l /b /c:"1:"
    ') do echo %%b

此代码使用robocopy(本机用于Vista和更高版本的操作系统版本,可从Microsoft for XP或2003下载)获取时间戳为yyyy-mm-dd hh:nn:ss格式的文件列表,按降序排序然后只检索第一行(即新文件)。