【问题标题】:Generate a list of the newest file in each subdirectory in windows batch在windows批处理中生成每个子目录中最新文件的列表
【发布时间】:2014-06-10 14:04:20
【问题描述】:

我需要确定根文件夹下每个子目录中的最新文件,并将该列表输出到显示文件名和创建日期的文本文件。例如,如果根目录是 D:\Data ,它总共包含 4 个子目录,其中 4 个子目录中的一个包含一个子目录,我的输出文件应该只包含一个文件列表(不包括创建的文件夹),如下所示:

D:\Data\folder1\文件名 02/12/14

D:\Data\folder2\文件名 03/02/14

D:\Data\folder3\文件名 03/15/14

D:\Data\folder4\folder01\文件名 01/22/14

我查看了其他帖子,但似乎没有一个专门这样做...

【问题讨论】:

    标签: windows batch-file subdirectory datecreated


    【解决方案1】:

    两种选择

    @echo off
        setlocal enableextensions enabledelayedexpansion
    
        set "rootFolder=c:\somewhere"
    
    :: option 1
        echo --------------------------------------------------------------------------------
        for /d /r "%rootFolder%" %%a in (.) do (
            set "first="
            for /f "delims=" %%b in ('dir /o-d /a-d /b "%%~fa\*" 2^>nul') do if not defined first (
                set "first=1"
                for %%c in ("%%~fa\%%b") do echo %%~tc %%~fc
            )
        )
    
    :: option 2
        echo --------------------------------------------------------------------------------
        set "tempFile=%temp%\%~nx0.%random%.tmp"
        dir /a-d /b /s /o-d "%rootFolder%" 2>nul >"%tempFile%"
    
        set "oldFolder="
        for /f "usebackq delims=" %%a in ("%tempFile%") do if not "%%~dpa"=="!oldFolder!" (
            echo %%~ta %%~fa
            set "oldFolder=%%~dpa"
        )
    
        del /q "%tempFile%" >nul 2>nul
    

    选项 1 将在文件夹结构上递归,并且对于每个文件夹,都会执行 dir 命令以按日期降序检索文件夹中的文件列表。列表中的第一个是最近的。

    选项 2 将仅使用一个 dir 命令以按日期降序检索完整的文件列表,并将检索到的信息保存在临时文件中。然后处理文件。每次更改文件夹名称时,输出将是文件夹中最新文件的第一行。

    选项1会更早开始回显信息,但由于使用了多个命令,因此需要更多时间来执行,但需要更少的内存,因为它每次只检索一个文件夹的文件列表。

    选项 2 使用的命令更少,速度更快,但使用临时文件,需要更多内存,选项 1 作为完整文件列表将加载到内存中。

    根据您的文件夹结构的深度、文件的数量、内存的大小进行选择,...只是测试。

    【讨论】:

    • 太棒了!!谢谢 MC ND!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多