Rechercher des fichiers par date relative en utilisant la recherche Windows

Je cherche un moyen de sauvegarder une recherche qui inclut une date relative. Plus précisément, je cherche un moyen de sauvegarder une recherche qui correspond aux fichiers ayant une date de modification d’il y a 7 jours.

J’ai lu le document Windows Search Advanced Query Syntax et je ne vois pas de moyen de dire “il y a 7 jours”.

La section nombres et intervalles mentionne que les dates relatives sont possibles. Le problème est que les dates relatives décrites ne correspondent pas aux critères dont j’ai besoin. Le lastweek ressemble presque à ce que je veux, sauf que si j’exécute une requête comme after:lastweek un lundi, cela ne montrera que mes fichiers modifiés depuis dimanche à 00:00. Les lastweek/lastmonth semblent être relatifs au début de la semaine/du mois, ce qui n’est pas ce dont j’ai besoin.

Dates relatives en plusieurs mots : week, next
month, last week, past month, ou
coming year. Les valeurs peuvent également être
saisies de manière contractée :
thisweek, nextmonth, lastweek,
pastmonth, comingyear.

Un aspect intéressant des recherches sauvegardées est qu’elles sont stockées sous forme de document XML et que le format de fichier est documenté. Je ne vois pas comment former une valeur correcte pour un datetime. Si j’arrivais à comprendre ce format, je soupçonne que je pourrais utiliser un éditeur de texte et créer une recherche sauvegardée qui fait ce que je veux.

Fragment des exemples :

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

Pour résumer, je cherche une réponse à l’une ou aux deux questions suivantes :

  • Comment puis-je faire une requête pour “il y a 7 jours” en utilisant la syntaxe standard ?

  • Comment le DateTime est-il stocké dans une recherche sauvegardée ?


Source : Super User

Pour la première partie de votre question : R00UUUUUUUUZZXD-30NU indique à Windows de rechercher les 30 derniers jours. Changer 30 en 1 (c.-à-d., R00UUUUUUUUZZXD-1NU) lui ferait rechercher les dernières 24 heures.

Dans votre cas, vous cherchez à définir la valeur sur R00UUUUUUUUZZXD-7NU. Référence dans ce post de forum.:eight_o_clock:

Pour la seconde partie de votre question, commencez peut-être par regarder la documentation PH3 . L’autre type mentionné, System.StructuredQueryType.DateTime, je ne parviens pas à trouver de documentation à son sujet.

Mise à jour :

J’ai trouvé cette pépite:eight_o_clock: qui nous rapproche du déchiffrage de la construction des valeurs DateTime relatives. Considérez cette citation :

Par exemple, Structured Query prend en charge
les expressions de date/heure relatives, qui
restent non résolues jusqu’à ce qu’elles soient
appliquées à un temps de référence. Dans un
noeud feuille de type sémantique
System.StructuredQueryType.DateTime,
la valeur peut être soit un VT_FILETIME
soit un VT_LPWSTR. VT_FILETIME est une
date/heure absolue donc elle est déjà
résolue. VT_LPWSTR est une représentation
en chaîne d’une expression de date/heure
relative. Le temps de référence spécifié
devrait être un temps local, mais les
temps résolus dans l’expression de requête
résultante seront en temps universel
coordonné (UTC).

et enfin ce post de forum
contient un autre exemple de la manière dont le DateTime est stocké.

Le mieux que je puisse dire, c’est qu’il s’agit d’un format de date/heure relative. Je ne parviens toujours pas à trouver de documentation formelle à ce sujet.