使用Windows搜索在相对日期之后搜索文件


8

我正在寻找一种保存包含相对日期的搜索的方法。具体来说,我正在寻找一种保存与修改日期为7天之前的文件匹配的搜索的方法。

我已经阅读了Windows搜索高级查询语法文档,但7天前还没有办法说。

数字和范围部分未提到的是相对日期是可能的。问题是那里描述的相对日期不符合我需要的标准。最后一周几乎看起来像我想要的,除非我像after:lastweek星期一那样运行查询,它将仅显示自星期日12:00以来已修改的文件。最后一周/最后一个月似乎与一周/一个月的开始有关,这不是我所需要的。

多字相对日期:星期,下个月,上周,过去一个月或来年。也可以按以下方式输入合同规定的值:本周,下个月,上周,上个月,来年。

关于保存的搜索的一个好处是,它们被存储为一个XML文档和文件格式记录。我没有看到如何为日期时间形成正确的值。如果我能理解这种格式,我怀疑我可以使用文本编辑器并创建一个保存所需内容的搜索。

片段示例

<conditions>
  <condition type="leafCondition" valuetype="System.StructuredQueryType.DateTime"
             property="System.DateModified" operator="imp" 
             value="R00UUUUUUUUZZXD-30NU" propertyType="wstr" />
</conditions>

总而言之,我正在寻找这些问题中的一个或两个的答案

  • 如何使用标准语法查询“ 7天前”?
  • DateTime如何存储在保存的搜索中?

Answers:


7

对于问题的第一部分:R00UUUUUUUUZZXD-30NU告诉Windows搜索最近30天。将30更改为1 (即R00UUUUUUUUZZXD-1NU将使其在最近24小时内进行搜索。

在您的情况下,您希望将值设置为R00UUUUUUUUZZXD-7NU。参考此论坛帖子。🕗

对于问题的第二部分,可能首先查看System.DateModified文档。提到的另一种类型System.StructuredQueryType.DateTime,我找不到文档。

更新:

我发现了这颗宝石🕗,使我们更容易理解如何构造相对DateTime值。考虑以下报价:

例如,结构化查询支持相对的日期/时间表达式,直到将它们应用于某个参考时间之前,这些表达式仍无法解析。在语义类型为System.StructuredQueryType.DateTime的叶节点中,该值可以是VT_FILETIME或VT_LPWSTR。VT_FILETIME是绝对日期/时间,因此已经解决。VT_LPWSTR是相对日期/时间表达式的字符串表示形式。指定的参考时间应该是本地时间,但是结果查询表达式中的解析时间将以协调世界时(UTC)表示。

最后,该论坛帖子 还提供了另一个DateTime存储内容的示例。

我能说的最好的是相对日期/时间格式。我仍然找不到关于它的任何硬性文档。


+1。很好地挖掘了“ R00UUUUUUUUUZZXD-30NU”的含义。
Peter Mortensen

1

只需编写一个脚本(PowerShell或Batch),该脚本会采用今天的日期,减去7天,然后根据结果执行搜索。这样,您不必保存搜索,只需运行脚本。


我同意这是可以解决的。这确实不是我想要的解决方案。另外,有人应该知道datetime值的结构。
Zoredache

0

我创建了一个示例搜索文件以编程方式重新创建。我搜索了指定文件夹中的视频文件,该文件夹在最近2周内进行了修改(“修改日期:3/17 / 2017..4 / 1/2017”)。

这给了我一个.search-ms文件,里面充满了诸如:

<condition type="leafCondition" property="System.DateModified" operator="imp" propertyType="stringarray" value="N00K2017K3K17UUUUUZZNNU; N00K2017K4K1UUUUUZZNNU" valuetype="System.StructuredQueryType.DateTime" localeName="en-US">

这里的关键是

value =“ N00K 2017 K 3 K 17 UUUUUZZNNU; N00K 2017 K 4 K 1 UUUUUZZNNU”

您会注意到日期写得很清楚,以字母K开头。N00,然后是K,然后是年份,依此类推。

N00 K[year]K[month]K[day]UUUUUZZNNU

我编写了一个简单的控制台应用程序,以生成一个搜索文件,该文件的最近日期为过去两周内,并设置Windows Task Scheduler使其每天在午夜运行,以实现自己的目的。我敢肯定你也可以做。

我同意解决方法不能替代能够生成搜索文件。人们可能不知道的一件事是,您可以将.search-ms文件视为文件夹,甚至可以将它们包含在任务栏上的工具栏文件夹中。

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.