PowerShell中按修改时间查找文件的方法

本文介绍一个PowerShell中按文件的的修改时间来查找文件,这里要用到文件对象的LastWriteTime这个属性。

在很多时候,我都都需要按修改时间来查找文件。比如一个网站,近期发现被人挂马了,我们可能会看看近期的备份是否有被修改,从而确定一下被黑的大致时间段。有了这个时间段后,我们要看看这段时间之内有哪些文件被修改过,有哪些新增上来的文件,很有可能黑客留下下的一句话木马,甚至大马就在里面。

下面我们来看看PowerShell中如何根据文件修改时间来查找文件。

小编先来看看d盘根目录下有些什么内容:

PS C:Userssplaybow> dir d:
    目录: D:
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         2013/11/1     22:27            green
d----         2013/11/4     17:31            Program Files
d----         2013/11/6     10:23            Program Files (x86)
d----        2013/10/13     10:02            soft

因为小编没有使用-Recurse参数,所以并没有循环列出子目录。如果我们在一个目录下查找所有文件,那是应该在dir之后带上这个参数的。现在得到一共是四个目录。好了,我们来筛选一下修改时间在2013-11-4之前文件(或目录)。注意,下面命令使用管道对dir列出的目录进行筛选,找出LastWriteTime小于2013-11-4的,既然是小于,那肯定就不包括它了。得到结果如下:
PS C:Userssplaybow> dir d: | ?{$_.lastwritetime -lt '2013-11-4'}
    目录: D:
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         2013/11/1     22:27            green
d----        2013/10/13     10:02            soft

虽然我这里只是按时间搜索了一下目录,但对于文件,操作或者说命令其实是完全一样的。所以大家可以放心的将这个命令用于搜索指定时间段的文件。

关于PowerShell按修改时间查找文件,本文就介绍这么多,希望对您有所帮助,谢谢!