Open7

search-msファイルの生成

rioilrioil

日付の条件値は System.StructuredQueryType.DateTime という型で記述するらしい
2023/5/20 8:10:30はN10K2023K5K20K8K10K30UUZZNNUという値になるみたい
とりあえずKで区切れば良さそうだけど,先頭のN10が何を表してるのか分からない

rioilrioil

leafConditionの罠
propertyTypeはTypeのTが大文字なのに,valuetypeはすべて小文字

<condition type="leafCondition" property="System.DateCreated" propertyType="string" operator="lte" value="N10K2023K05K20K12K34K56UUZZNNU" valuetype="System.StructuredQueryType.DateTime" />
rioilrioil

クエリが単純で255文字以下に収まるなら,クエリをexplorer.exeの引数に渡せば検索画面を表示できる
クエリが255文字より長くなる場合は,条件が正しく処理されないのでsearch-msファイルを作ってexplorer.exeで開けばよい

https://superuser.com/questions/554975/windows-search-limits-queries-to-255-chars-any-way-to-override-this

https://learn.microsoft.com/en-us/windows/win32/search/-search-3x-advancedquerysyntax

rioilrioil

explorer.exeの引数としてクエリを渡す方法

explorer.exe "search-ms://query=クエリ"
rioilrioil

conditionsに書かれた条件が多すぎると処理してもらえない
ルートのORの下に条件2つずつのAND94個が限界だった

orCondition
├ andCondition
│ ├ leafCondition
│ └ leafCondition
├ andCondition
│ ├ leafCondition
│ └ leafCondition
├ andCondition
│ ├ leafCondition
│ └ leafCondition
└ ...