如何按修改日期对 findStr 命令返回的文件进行排序?

如何按修改日期对 findStr 命令返回的文件进行排序?

目前我需要找出所有包含该关键词的文件。下面是我使用的命令findstr /s /i "my-key-word" *.*

我如何根据修改日期对返回的文件进行排序?谢谢。

答案1

使用 PowerShell 并在当前文件夹中搜索会更容易:

Get-ChildItem | Select-String "keyword" -List | Sort-Object -Property LastWriteTime | Select Filename

答案2

与流行相反观点,这在批处理中相当容易完成 - 但是,速度可能会慢得多。Dir首先使用对文件进行排序,然后使用 findstr 搜索已排序的文件。

@For /f "delims=" %%G in ('Dir /b *.* /O:-D')Do @Findstr /li "searchstring" "%%G" > nul && Echo(%G

要搜索子文件夹:

@For /f "delims=" %%G in ('Dir /b /s *.* /O:-D')Do @Findstr /li "searchstring" "%%G" > nul && Echo(%G

要按最旧顺序排序,请将:更改/O:-D/O:D

以上是简单的解决方案。从性能角度来看,您可以先使用 findstr 获取文件列表,然后开始评估和排序该列表。

相关内容