如何在整个硬盘驱动器中搜索在特定日期修改的文件?[重复]


9

几个小时前,我拾起了病毒,并确定了其中一个文件。我知道安装病毒的确切时间,并想在我的整个硬盘驱动器中搜索在那分钟内修改过的文件。有实用程序可以做到这一点吗?Windows搜索仅搜索文档。

我正在使用Windows 8。


2
您可以使用防病毒软件……
BenjiWiebe 2013年

我正在使用Windows Defender(Windows 8中的Security Essentials)+ Malwarebytes。MalwareBytes仅识别一个文件,并且都没有搜索选项。
msbg

也许这就是被感染的全部。这可能的,该病毒是一个文件,该文件没有做任何事情。也许正在等待黑客的命令。;)
BenjiWiebe 2013年

1
是的,但我宁可确定。可能会在几周内准备好另一个文件来重新安装病毒。
msbg

1
我所描述的程序在其他情况下也可能会派上用场
msbg

Answers:


9

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

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

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


很好,但是我看不到按分钟/小时进行搜索的任何选项。
msbg

进行了修订以解释如何向下搜索到该级别。
KAMonica

好答案。(我本来建议使用PowerShell,但这比较容易)。
盖·托马斯

@KA您能告诉我为什么这些都不起作用吗?System.DateModified:>2016-01-04T05:00System.DateModified:<2016-01-04T05:00。应该是January 4, 2016 at 5 AM。我添加了一个,>因为我想您在列出日期和时间之后的情况。
cokedude

2

有很多方法可以做到这一点。您可以尝试类似的程序

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

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

它不是那么复杂,下面的代码将在C:驱动器中搜索创建的文件“ 2013年1月19日下午06: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。您可能需要调整字符串以使其与窗口8中的DIR输出匹配。另外,我也不知道Windows 8是否允许您访问C:。每次搜索只需要一分钟,只会给您文件名而不是位置,每次运行它都将清除旧的搜索结果。“ ”应该是可选的,以防万一。

希望能帮助到某人。

最后一件事。您可以将整个darn驱动器直接输出到一个文本文件,然后使用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

1

我来这里搜索时遇到了同样的问题。

在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:24 pm或通用: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 :)的根目录中的“文件资源管理器”窗口中将此字符串输入到地址文本框右侧的“搜索此PC”组合框。

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

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

(我拍了张照片但无法发布)


1

您可以使用一个称为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%或类似的东西(可能需要重新排序日期部分那里取决于您的语言环境)


请注意,在批处理文件中,您必须使用%%而不是单个%
George Birbilis

顺便说一句,要查找今天已更改的文件,看起来可以使用/ D +0,要查找比今天更旧的文件,可以使用/ D -0
George Birbilis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.