我正在寻找一种方法来保存包含相对日期的搜索。具体来说,我正在寻找一种方法来保存与修改日期匹配的文件的搜索7天前。
我已经阅读Windows Search 高级查询语法文件,我没有看到任何方法来表明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 天前”?
- 已保存的搜索中如何存储日期时间?
答案1
对于问题的第一部分:R00UUUUUUUUZZXD-30NU
告诉 Windows 搜索过去 30 天。将 30 改为 1(IE,R00UUUUUUUUZZXD-1NU
)将搜索过去 24 小时。
在您的例子中,您希望将值设置为R00UUUUUUUUZZXD-7NU
。参考此论坛帖子。
答案2
只需编写一个脚本(PowerShell 或 Batch),获取今天的日期,减去 7 天,然后根据结果执行搜索。这样,您无需保存搜索,只需运行脚本即可。
答案3
我创建了一个示例搜索文件,以便通过编程方式重新创建。我搜索了指定文件夹中过去 2 周内修改的视频文件(“修改日期:2017 年 3 月 17 日至 2017 年 4 月 1 日”)。
这给了我一个 .search-ms 文件,其中包含以下内容:
<condition type="leafCondition" property="System.DateModified" operator="imp" propertyType="stringarray" value="N00K2017K3K17UUUUUZZNNU; N00K2017K4K1UUUUUZZNNU" valuetype="System.StructuredQueryType.DateTime" localeName="en-US">
关键在于
值="N00K"2017钾3钾17哎呀哎呀;N00K2017钾4钾1呜呜呜呜呜
您会注意到日期写得很清楚,前面是字母 K。N00 然后是 K,然后是年份,等等。
N00
K[year]K[month]K[day]
呸呸呸
我编写了一个简单的控制台应用程序来生成一个包含过去 2 周内具体日期的搜索文件,并设置了 Windows 任务计划程序以便每天午夜运行它,以满足我自己的目的。我相信你也可以这样做。
我同意这种解决方法不能替代生成搜索文件的功能。人们可能不知道的一件事是,您可以将 .search-ms 文件视为文件夹,甚至可以将它们作为工具栏文件夹包含在任务栏上。