目前我需要找出所有包含该关键词的文件。下面是我使用的命令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 获取文件列表,然后开始评估和排序该列表。