Suchen Sie mit der Windows-Suche nach Dateien nach einem relativen Datum


8

Ich suche nach einer Möglichkeit, eine Suche zu speichern, die ein relatives Datum enthält. Insbesondere suche ich nach einer Möglichkeit, eine Suche zu speichern, die mit Dateien übereinstimmt, deren Änderungsdatum vor 7 Tagen liegt .

Ich habe das Windows Search Advanced Query Syntax- Dokument gelesen und sehe vor 7 Tagen keine Möglichkeit, dies zu sagen.

Im Abschnitt Zahlen und Bereiche wird erwähnt, dass relative Daten möglich sind. Das Problem ist, dass die dort beschriebenen relativen Daten nicht den von mir benötigten Kriterien entsprechen. Die letzte Woche sieht fast so aus, wie ich es möchte, außer wenn ich eine Abfrage wie after:lastweekan einem Montag ausführe , werden nur meine Dateien angezeigt , die seit Sonntag um 12:00 Uhr geändert wurden. Die letzte Woche / der letzte Monat scheint relativ zum Beginn der Woche / des Monats zu sein, was ich nicht brauche.

Relative Daten mit mehreren Wörtern: Woche, nächster Monat, letzte Woche, vergangener Monat oder nächstes Jahr. Die Werte können auch wie folgt vertraglich eingegeben werden: diese Woche, der nächste Monat, die letzte Woche, der vergangene Monat, das kommende Jahr.

Eine schöne Sache bei gespeicherten Suchvorgängen ist, dass sie als XML-Dokument gespeichert und das Dateiformat dokumentiert werden . Ich sehe nicht, wie man einen korrekten Wert für eine Datumszeit bildet. Wenn ich dieses Format verstehen könnte, könnte ich vermutlich einen Texteditor verwenden und eine gespeicherte Suche erstellen, die das tut, was ich will.

Fragment aus den Beispielen :

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

Zusammenfassend suche ich nach einer Antwort auf eine oder beide dieser Fragen

  • Wie mache ich eine Abfrage für 'vor 7 Tagen' mit der Standardsyntax?
  • Wie wird die DateTime in einer gespeicherten Suche gespeichert?

Antworten:


7

Für den ersten Teil Ihrer Frage: R00UUUUUUUUZZXD-30NUWeist Windows an, die letzten 30 Tage zu durchsuchen. Wenn Sie 30 in 1 (dh R00UUUUUUUUZZXD-1NU) ändern, wird die Suche in den letzten 24 Stunden durchgeführt.

In Ihrem Fall möchten Sie den Wert auf einstellen R00UUUUUUUUZZXD-7NU. Verweisen Sie auf diesen Forumsbeitrag. 🕗

Für den zweiten Teil Ihrer Frage schauen Sie sich vielleicht zunächst die System.DateModifiedDokumentation an. Bei dem anderen Typ, der erwähnt wird, System.StructuredQueryType.DateTimekann ich keine Dokumentation finden.

Aktualisieren:

Ich habe dieses Juwel gefunden , das uns näher an die Entschlüsselung der Konstruktion der relativen DateTimeWerte bringt . Betrachten Sie dieses Zitat:

Beispielsweise unterstützt die strukturierte Abfrage relative Datums- / Zeitausdrücke, die ungelöst bleiben, bis sie auf eine Referenzzeit angewendet werden. In einem Blattknoten mit dem semantischen Typ System.StructuredQueryType.DateTime kann der Wert entweder ein VT_FILETIME oder ein VT_LPWSTR sein. VT_FILETIME ist ein absolutes Datum / eine absolute Uhrzeit, daher ist es bereits aufgelöst. VT_LPWSTR ist eine Zeichenfolgendarstellung eines relativen Datums- / Zeitausdrucks. Die angegebene Referenzzeit sollte eine Ortszeit sein, aber die aufgelösten Zeiten im resultierenden Abfrageausdruck werden in koordinierter Weltzeit (UTC) angegeben.

und schließlich hat dieser Forumsbeitrag ein weiteres Beispiel dafür, was DateTimegespeichert ist.

Das Beste, was ich sagen kann, ist ein relatives Datums- / Zeitformat. Ich kann immer noch keine Dokumentation finden.


+1. Gute Arbeit, die Bedeutung von "R00UUUUUUUUZZXD-30NU" herauszufinden.
Peter Mortensen

1

Schreiben Sie einfach ein Skript (PowerShell oder Batch), das das heutige Datum verwendet, 7 Tage subtrahiert und eine Suche basierend auf dem Ergebnis ausführt. Auf diese Weise müssen Sie die Suche nicht speichern, sondern nur das Skript ausführen.


Obwohl ich damit einverstanden bin, ist dies eine mögliche Umgehung. Dies ist wirklich nicht die Lösung, nach der ich suche. Außerdem sollte jemand wissen, wie der Datum / Uhrzeit-Wert strukturiert ist.
Zoredache

0

Ich habe eine Beispielsuchdatei erstellt, um sie programmgesteuert neu zu erstellen. Ich habe in einem bestimmten Ordner nach Videodateien gesucht, die in den letzten 2 Wochen geändert wurden ("datemodified: 3/17 / 2017..4 / 1/2017").

Dies gab mir eine .search-ms-Datei voller Dinge wie:

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

Der Schlüssel hier ist

value = "N00K 2017 K 3 K 17 UUUUUZZNNU; N00K 2017 K 4 K 1 UUUUUZZNNU"

Sie können feststellen, dass die Daten deutlich geschrieben sind und vor dem Buchstaben K stehen. N00, dann K, dann das Jahr und so weiter.

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

Ich habe eine einfache Konsolenanwendung geschrieben, um eine Suchdatei mit den spezifischen Daten der letzten zwei Wochen zu generieren, und den Windows Task Scheduler so eingerichtet, dass sie jeden Tag um Mitternacht für meine eigenen Zwecke ausgeführt wird. Ich bin sicher, Sie könnten das Gleiche tun.

Ich bin damit einverstanden, dass die Problemumgehungsmethode kein Ersatz für die Generierung der Suchdatei ist. Eine Sache, die die Leute vielleicht nicht wissen, ist, dass Sie .search-ms-Dateien als Ordner behandeln und sie sogar als Symbolleistenordner in Ihre Taskleiste aufnehmen können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.