如何搜索整个硬盘以查找特定日期修改的文件?

如何搜索整个硬盘以查找特定日期修改的文件?

几个小时前我感染了病毒,并识别了其中一个文件。我知道病毒安装的确切时间,想搜索我的整个硬盘查找在那一分钟内修改的文件。是否有实用程序可以执行此操作?Windows 搜索仅搜索文档。

我正在使用 Windows 8。

答案1

从桌面打开文件资源管理器。导航到硬盘的根目录(可能是 C:\)。点击/单击搜索字段并输入以下内容:System.DateModified:YYYY-MM-DDThh:mm:ss其中日期和时间是您知道病毒出现的日期和时间,并以 ISO-8601 描述,如下所示:http://www.w3.org/TR/NOTE-datetime

Windows 搜索术语称为“高级查询语法”,包含许多有用的术语,其中大多数不会通过 Windows 搜索 UI 向最终用户显示。这是一个例子,在 MSDN 文档中进行了解释:http://msdn.microsoft.com/en-us/library/bb266512%28VS.85%29.aspx在“Windows 8 中的 DateTime 属性”部分下。

请注意,您可能必须扩展索引才能搜索整个驱动​​器,并且索引不会搜索某些位置(C:\Windows\CSC\例如)。

答案2

有很多方法可以做到这一点。你可以尝试以下程序

http://www.mythicsoft.com/page.aspx?type=filelocatorlite&page=home

我不用 8 甚至 7。但我会用 CMD。有几种方法可以做到这一点,但最简单的方法是对整个驱动器执行 DIR,并过滤子文件夹的创建时间,然后搜索与日期和时间格式匹配的字符串。要粘贴到 CMD 窗口中,只需右键单击并选择粘贴。(再次从未使用过 win8)

它并不复杂,下面的代码将在 C: 驱动器中搜索创建于“2013 年 1 月 19 日下午 6:38”的文件,输出为 C:\FoundFiles.TXT。

@dir c:\*.* /s /t:c | findstr "01/19/2013  06:38 PM">c:\FoundFiles.TXT 

下面的代码将搜索隐藏文件并输出到 c:\FoundHiddenFiles.TXT

@dir c:\*.* /s /a:h /t:c | findstr "01/19/2013  06:38 PM">c:\FoundHiddenFiles.TXT

使用/t:a 查找“上次访问”的文件,使用/t:w 查找“上次写入”的文件

要在 Windows 8 中打开 CMD,只需在应用程序中搜索 CMD。您可能需要调整字符串以匹配 Windows 8 中输入的 DIR 输出。另外,我不知道 Windows 8 是否允许您访问 C:。每次搜索只需一分钟,它只会为您提供文件名而不是位置,并且每次运行它时,它都会清除旧的搜索结果。““应该是可选的,只是为了以防万一而把它们放进去。

希望这对某人有帮助。

最后一件事。您可以将整个驱动器输出到文本文件,然后使用 Word 或记事本或 Windows 8 提供的任何程序进行搜索。下面的代码将输出您硬盘驱动器的全部内容,并按文件创建时间排序。

dir c:\*.* /s /o:d /t:c >C:\AllFiles.TXT

如果你想搜索所有隐藏文件,请使用

dir c:\*.* /s /o:d /t:c /a:h >C:\AllHiddenFiles.TXT

答案3

我来这里是为了搜索同样的问题。

在 Windows 8.1 中,如果我在日期中添加 Thh:mm:ss,则 ISO 8601 格式的日期 (YYYY-MM-DDThh:mm:ss) 对我来说不起作用。没有时间的日期可以。'2014-‎1-‎15'

但这确实适用于时间:15-‎Jan-‎14 16:24 您可能需要使用区域格式,例如 01/15/14 4:24pm 或通用格式:2014-‎1-‎15 16:24

我建议您不要搜索修改时间,而是查找在该日期和时间创建的文件。因为文件有创建/修改/访问日期: System.DateCreated:15-‎Jan-‎14 16:24

对我来说,即使没有“系统”它也可以工作:DateCreated:‎15-‎Jan-‎14 16:24

另外,在我们的例子中,最好将搜索范围扩大到更广,例如 10 分钟内:

DateCreated:‎15-‎Jan-‎14 16:24..15-Jan-14 16:34

或者使用与语言无关的格式的日期:

DateCreated:‎2014-‎1-‎15 16:24..2014-‎1-‎15 16:34

您在主驱动器(c:)根目录中的文件资源管理器窗口中的地址文本框右侧的“搜索此电脑”组合框中输入此字符串。

此外,您还需要在搜索中包含系统文件,因为我认为 AppData 文件夹位于索引空间之外,否则不会被搜索。病毒喜欢驻留在该文件夹中。为此,请单击菜单中的“搜索”,然后单击“高级选项”和“系统文件”

在结果窗格中,您将看到修改日期,其中一些超出了您指定的范围。如果您查看每个文件的属性,您将看到创建日期在指定范围内。它们在创建后已被修改

(我拍了照片但是发不出来)

答案4

有一个名为 forfiles 的 DOS 命令,你可以使用它

forfiles /P C:\ /S /D -1 /M *.*

您还可以使用更高级的语法,例如调用程序(或使用 cmd /c 调用 DOS 命令...)

forfiles /P C:\ /S /D -1 /M *.* /C "cmd /c echo @fname @fdate"

请参阅 forfiles /? 了解语法和参数(例如 @fname、@fdate 等)。

要打开命令提示符,请转到“开始”菜单/搜索...,然后输入 CMD,然后按 ENTER 键打开 DOS 窗口

(PS:我无法让它在我的系统上运行 - 似乎返回所有文件,而不仅仅是那些前一天更改的文件,正如我用 /D -1 指定的 - 可能是因为它有错误,希腊日期是 DD/MM/YYYY 而不是 MM/DD/YYYY)

更正:似乎对 /D -dd 的作用存在误解(我和其他人通过网上搜索判断),似乎它不会搜索 dd 天前的文件,而是搜索早于 dd 天的文件

因此您需要使用 FORFILES 的 /D +dd/MM/yyyy 语法并传入昨天的日期以查找日期晚于昨天的所有文件。要自动执行此操作,您可以使用 %date% 并使用 %date:~7,2%/%date:~4,2%/%date:~-4% 或类似方法进行解析(可能需要根据您的语言环境重新排序那里的日期部分)

相关内容