使用批处理脚本查找名称以 <> 开头的目录中的最新文件

Pra*_*tik 1 windows batch-file batch-processing

所以我有一个正在创建日志文件的目录,我想读取最新的日志文件。该目录将包含日志文件、错误文件和一些其他每次都会创建的文件。我的日志文件的名称以 test-install-<>.log 开头

如何使用批处理脚本查找最新的日志文件。

谢谢

MC *_* ND 5

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "lastLog="
    for /f "delims=" %%a in ('dir /b /o-d "x:\logsFolder\test-install-*.log" 2^>nul') do (
        if not defined lastLog set "lastLog=%%a"
    )

    echo %lastLog%
Run Code Online (Sandbox Code Playgroud)

或者,对于一长串文件,避免迭代

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "lastLog="
    for /f "delims=" %%a in ('dir /b /o-d "x:\logsFolder\test-install-*.log" 2^>nul') do (
        set "lastLog=%%a" 
        goto :done
    )
:done
    echo %lastLog%
Run Code Online (Sandbox Code Playgroud)

或者,如果您有一个非常大的文件列表

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "lastLog="
    for /f "delims=" %%a in ('
        dir /b /o-d "x:\logsFolder\test-install-*.log" 2^>nul
        ^| cmd /q /v /c"set /p .=&if defined . (echo(!.!)"
    ') do set "lastLog=%%a" 
    echo %lastLog%
Run Code Online (Sandbox Code Playgroud)