使用命令行按创建或修改日期搜索文件

使用命令行按创建或修改日期搜索文件

从命令提示符下,脚本:

C:\>dir *.* /s > a.txt

会列出 TXT 文件 (a.txt) 中的所有文件,然后可以使用记事本或其他文本编辑器打开。然后,您可以在列表中搜索在某个时间范围内(例如今天)修改的文件。例如,这个问题是在 2015 年 8 月 6 日写的,所以我可以搜索“06/08/2015”。您甚至可以通过在今天 10:00 之后创建的文件中搜索“06/08/2015 10”来改进这一点。

这样做很好,但生成的文件可能非常大(而且生成需要一段时间)。有没有更好的办法(最好但不限于从命令行)。

答案1

我建议文件定位器精简版。它有一个日期标签。它很轻巧,易于使用。

答案2

那么 powershell 怎么样?

 get-childitem -recurse | where-object { $_.lastwritetime -gt (get-date).addHours(-100)}

我认为这对你来说很好。

示例输出:

 12:20 x D:\Users\x > get-childitem -recurse |where-object {$_.lastwritetime -gt (get-date).addHours(-100)}


    Directory: D:\Users\x


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-r--        2015-08-06     10:43            Desktop


    Directory: D:\Users\x\Desktop


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2015-08-05     16:38     636963 20119998885_921a43c7b4_k.jpg
-a---        2015-08-03     15:45     206011 cpu.csv


    Directory: D:\Users\x\Important\Passwd


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2015-08-05     10:49         62 main.plk

Get-childitem 与旧版本类似dir,但输出更像对象而不是文本流。每个项目都有属性 - 例如 lastwritetime 就像修改时间一样。您可以使用 addDays 或 addHours 等函数对这些参数进行算术运算,以获得基于日期的所需过滤器。

当然,您可以使用-eq而不是-gt并提供要匹配的确切日期。我认为您甚至可以使用-match运算符并指定带有通配符的掩码来匹配所需的日期。试试看。它比纯 cmd 更好。

相关内容