8

Я ищу способ сохранить поиск, который включает относительную дату. В частности, я ищу способ сохранить поиск, который соответствует файлам с датой изменения, которая 7 дней назад.

Я прочитал документ синтаксиса расширенного запроса Windows Search и не вижу способа сказать это 7 дней назад.

Раздел чисел и диапазонов упоминает, что возможны относительные даты. Проблема в том, что относительные даты, описанные там, не соответствуют критериям, которые мне нужны. Lastweek выглядит почти так, как я хочу, за исключением того, что я запускаю запрос вроде after:lastweek в понедельник, он покажет только мой файл, который был изменен с воскресенья в 12:00. Lastweek /lastmonth, кажется, относятся к началу недели / месяца, а это не то, что мне нужно.

Относительные даты, состоящие из нескольких слов: неделя, следующий месяц, последняя неделя, прошедший месяц или наступающий год. Значения также могут быть введены по контракту следующим образом: thisweek, nextmonth, lastweek, pastmonth, ближайшие год.

Одна из полезных особенностей сохраненных поисков заключается в том, что они хранятся в виде XML-документа, а формат файла задокументирован. Я не вижу, как сформировать правильное значение для даты и времени. Если бы я смог понять этот формат, я подозреваю, что мог бы использовать текстовый редактор и создать сохраненный поиск, который делает то, что я хочу.

Фрагмент из примеров:

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

Подводя итог, я ищу ответ на один или оба из этих вопросов

  • Как мне сделать запрос на «7 дней назад», используя стандартный синтаксис?
  • Как DateTime хранится в сохраненном поиске?

3 ответа3

6

Для первой части вашего вопроса: R00UUUUUUUUZZXD-30NU говорит Windows, чтобы искать последние 30 дней. Изменение 30 на 1 приведет к поиску за последние 24 часа.

В вашем случае вы хотите установить значение R00UUUUUUUUZZXD-7NU . Ссылка на этот пост на форуме.

Для второй части вашего вопроса, возможно, начните с рассмотрения System.DateModified документация. Другой упомянутый тип, System.StructuredQueryType.DateTime , я не могу найти документацию по.

Обновить:

Я нашел этот драгоценный камень, который приближает нас к расшифровке, как построить относительные значения DateTime . Рассмотрим эту цитату:

Например, Structured Query поддерживает относительные выражения даты / времени, которые остаются неразрешенными, пока они не будут применены к некоторым эталонным времени. В листовом узле с семантическим типом System.StructuredQueryType.DateTime, значение может быть либо VT_FILETIME, либо VT_LPWSTR. VT_FILETIME - это абсолютная дата / время, поэтому оно уже разрешено. VT_LPWSTR является строковым представлением относительного выражения даты / времени. Указанное эталонное время должно быть местным, но разрешенное время в результирующем выражении запроса будет соответствовать всемирному координированному времени (UTC).

и наконец, эта публикация на форуме имеет еще один пример того, как хранится DateTime .

Лучшее, что я могу сказать, это относительный формат даты / времени. Я до сих пор не могу найти какую-либо трудную документацию по нему.

1

Просто напишите скрипт (PowerShell или Batch), который принимает сегодняшнюю дату, вычитает 7 дней и выполняет поиск на основе результата. Таким образом, вам не нужно будет сохранять результаты поиска, просто запустите скрипт.

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">

Ключ здесь берем

значение = "N00K2017K3K17UUUUUZZNNU; N00K2017K4K1UUUUUZZNNU"

Вы можете заметить, что даты написаны явно, с добавлением буквы K. N00, затем K, затем год и так далее.

Я написал простое консольное приложение для генерации файла поиска с конкретными датами в течение последних 2 недель и настроил планировщик задач Windows, чтобы он запускался каждый день в полночь для моих собственных целей. Я уверен, что вы могли бы сделать то же самое.

Я согласен, что метод обхода не может заменить возможность создания файла поиска. Люди могут не знать, что вы можете обращаться с файлами .search-ms как с папками, даже если вы включите их в качестве панели инструментов на панели задач.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .