Cari file setelah tanggal relatif menggunakan pencarian Windows

8

Saya mencari cara untuk menyimpan pencarian yang menyertakan tanggal relatif. Secara khusus saya mencari cara untuk menyimpan pencarian yang cocok dengan file yang memiliki tanggal modifikasi 7 hari yang lalu .

Saya telah membaca dokumen Windows Search Advanced Query Syntax dan saya tidak melihat cara untuk mengatakan 7 hari yang lalu.

Bagian angka dan rentang menyebutkan bahwa tanggal relatif dimungkinkan. Masalahnya adalah bahwa tanggal relatif yang dijelaskan di sana tidak sesuai dengan kriteria yang saya butuhkan. The lastweek hampir terlihat seperti apa yang saya inginkan kecuali jika saya menjalankan query seperti after:lastweekpada hari Senin hanya akan menampilkan file saya yang telah dimodifikasi sejak Minggu pukul 12.00. Minggu terakhir / bulan terakhir tampaknya relatif terhadap awal minggu / bulan yang bukan yang saya butuhkan.

Tanggal relatif multi-kata: minggu, bulan depan, minggu lalu, bulan lalu, atau tahun yang akan datang. Nilai-nilai juga dapat dimasukkan dikontrak, sebagai berikut: thisweek, nextmonth, lastweek, pastmonth, comingyear.

Satu hal yang baik tentang pencarian tersimpan adalah bahwa mereka disimpan sebagai dokumen XML dan format file didokumentasikan . Saya tidak melihat cara membentuk nilai yang benar untuk suatu waktu. Jika saya dapat memahami format ini, saya curiga saya dapat menggunakan editor teks dan membuat pencarian tersimpan yang melakukan apa yang saya inginkan.

Fragmen dari contoh :

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

Untuk meringkas saya sedang mencari jawaban untuk satu atau kedua pertanyaan ini

  • Bagaimana cara membuat kueri untuk '7 hari yang lalu' menggunakan sintaks standar?
  • Bagaimana DateTime disimpan dalam pencarian yang disimpan?
Sakit kepala
sumber

Jawaban:

7

Untuk bagian pertama dari pertanyaan Anda: R00UUUUUUUUZZXD-30NUberi tahu Windows untuk mencari selama 30 hari terakhir. Mengubah 30 ke 1 (yaitu, R00UUUUUUUUZZXD-1NU) akan membuatnya mencari 24 jam terakhir.

Dalam kasus Anda, Anda ingin menetapkan nilainya R00UUUUUUUUZZXD-7NU. Referensi posting forum ini . 🕗

Untuk bagian kedua dari pertanyaan Anda, mungkin mulai dengan melihat System.DateModifieddokumentasi. Tipe lain yang disebutkan System.StructuredQueryType.DateTime,, saya tidak dapat menemukan dokumentasi di.

Memperbarui:

Saya menemukan permata ini gets yang membuat kita lebih dekat untuk menguraikan cara membangun nilai relatif DateTime. Pertimbangkan kutipan ini:

Misalnya, Permintaan Terstruktur mendukung ekspresi tanggal / waktu relatif, yang tetap tidak terselesaikan hingga diterapkan pada waktu referensi tertentu. Dalam simpul daun dengan tipe semantik System.StructuredQueryType.DateTime, nilainya bisa berupa VT_FILETIME atau VT_LPWSTR. VT_FILETIME adalah tanggal / waktu absolut sehingga sudah diselesaikan. VT_LPWSTR adalah representasi string dari ekspresi tanggal / waktu relatif. Waktu referensi yang ditentukan harus waktu lokal, tetapi waktu yang diselesaikan dalam ekspresi permintaan yang dihasilkan akan dalam waktu universal terkoordinasi (UTC).

dan akhirnya posting forum ini memiliki contoh lain tentang apa yang DateTimedisimpan.

Yang terbaik yang bisa saya katakan adalah format tanggal / waktu relatif. Saya masih tidak dapat menemukan dokumentasi keras tentang itu.

mindless.panda
sumber
+1. Pekerjaan bagus menggali arti "R00UUUUUUUUZZXD-30NU".
Peter Mortensen
1

Tulis saja skrip (PowerShell atau Batch) yang mengambil tanggal hari ini, kurangi 7 hari dan laksanakan pencarian berdasarkan hasilnya. Dengan begitu, Anda tidak perlu menyimpan pencarian, jalankan saja skripnya.

Bepergian Tek Guy
sumber
Meskipun saya setuju ini mungkin untuk diselesaikan. Ini sebenarnya bukan solusi yang saya cari. Plus, seseorang harus tahu bagaimana nilai datetime terstruktur.
Zoredache
0

Saya membuat sampel file pencarian untuk dibuat ulang secara terprogram. Saya mencari file video dalam folder tertentu, dimodifikasi dalam 2 minggu terakhir ("datemodified: 3/17 / 2017..4 / 1/2017").

Ini memberi saya file .search-ms yang penuh dengan hal-hal seperti:

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

Kuncinya di sini adalah

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

Anda dapat melihat bahwa tanggal ditulis dengan jelas, diawali dengan huruf K. N00 lalu K, lalu tahun, dan seterusnya.

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

Saya menulis aplikasi konsol sederhana untuk menghasilkan file pencarian dengan tanggal tertentu dalam 2 minggu terakhir, dan mengatur Penjadwal Tugas Windows untuk menjalankannya setiap hari pada tengah malam untuk keperluan saya sendiri. Saya yakin Anda bisa melakukan hal yang sama.

Saya setuju metode penyelesaian masalah bukan pengganti untuk dapat menghasilkan file pencarian. Satu hal yang orang mungkin tidak tahu adalah Anda dapat memperlakukan file .search-ms sebagai folder, bahkan sejauh memasukkannya sebagai folder toolbar pada taskbar Anda.

Stabby
sumber