Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何从cmd查找目录中最新的“n”文件?_Windows_Batch File_Cmd - Fatal编程技术网

Windows 如何从cmd查找目录中最新的“n”文件?

Windows 如何从cmd查找目录中最新的“n”文件?,windows,batch-file,cmd,Windows,Batch File,Cmd,我想获取目录中最新的5个文件 这给了我最新的文件: FOR /F "delims=|" %%I IN ('DIR "*.yaml" /B /O:D') DO SET NewestFile=%%I 非常感谢您提供的任何帮助以下示例旨在执行您的问题中列出的任务以及我的建议意见中暗示的任务: @回音 SetLocal DisableDelayedExpansion 对于/F Delims==%A在“最新设置”[2>NUL'Do集合%%A= 对于/F标记=1*Delims=:%%A 'Dir/B/A:

我想获取目录中最新的5个文件

这给了我最新的文件:

FOR /F "delims=|" %%I IN ('DIR "*.yaml" /B /O:D') DO SET NewestFile=%%I

非常感谢您提供的任何帮助

以下示例旨在执行您的问题中列出的任务以及我的建议意见中暗示的任务:

@回音 SetLocal DisableDelayedExpansion 对于/F Delims==%A在“最新设置”[2>NUL'Do集合%%A= 对于/F标记=1*Delims=:%%A 'Dir/B/A:-D/O:-D/T:W*.yaml 2>NUL | FindStr/LINE.yaml' 如果%%A LEq 5设置为最新[%%A]=%%BElse GoTo:下一步,则执行此操作 :下一个 设置最新[2>编号和暂停(&P)
在上面的示例中,我使用了最新编写的文件,最后一行仅用于显示For循环中设置的任何变量。

这里是根据上次写入时间获取五个最新文件的另一种方法。请确保将-Path目录更改为您的

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F "delims=" %%f IN ('powershell -NoLogo -NoProfile -Command ^
    "Get-ChildItem -Path "C:\src\t" -Filter '*.yaml' |" ^
        "Sort-Object -Property LastWriteTime -Descending |" ^
        "Select-Object -First 5 |" ^
        "ForEach-Object { $_.FullName }"') DO (
    SET "NEWFILE=%%~f"
    ECHO Do something with "!NEWFILE!"
)

请解释您所说的最新、最近创建、最近访问和最近写入都是Dir命令中可用的选项。要查看这些选项,[/T[:][C | A | W]]。您可以打开命令提示符并输入Dir/?,同时还应注意,您可以使用[/O[[:][-][D]]反转排序器。是否要回显5文件的路径/名称,或将其存储在环境变量中?请回答您的问题,而不是发表评论!