Yardım edelim!
Herhangi bir Windows Arama sorunu için önerim iki şeydir:
- Oku AQS (gelişmiş bir sorgu sözdizimi) belgelerine tüm özel karakterler ne bilmeleri.
- Windows Search'ün sorgunuzu kesin AQS'ye dönüştüreceğini ve sorgularınızda belirli olmadıkça Windows'un aslında AQS'yi ne demek istediğinizi tahmin edeceğini bilin. Sonuçlar şaşırtıcı olabilir!
İlk olarak, AQS ile ilgili bazı temel bilgiler
Varsayılan olarak, dize dosyası özellikleri (Dosya adı, yazar vb.) İle arama yapar COP_WORD_STARTSWITH
$<
, böylece arama teriminizle başlayan herhangi bir kelime (ile ayrılır spaces , - _ () []
ve daha fazlasını yapar). Diğer dize olmayan özellikler (Tarihler, vb.) COP_EQUAL
=
, Varsayılan olarak tam veya tam olarak eşleşir (joker karakterler yoktur *
ve ?
değişmez).
İkincisi, dizine eklenmiş herhangi bir yerde arama yapıyorsanız, sorgunuzdaki dizine eklenmemiş konumların tümü gösterilmez.
Üçüncüsü, AQS Windows Search'ün gerçekte ne aradığını görmek için Adres Çubuğuna tıklayın. Yer kırıntılarını ve ekran adını görmezden gelebilirsiniz: Bu yüzde kodlanmış olacak, bu yüzden https://www.url-encode-decode.com/
Dördüncüsü, belgelenmemiş *
ve ?
AQS'da bir ~
COP_DOSWILDCARDS
sorguda bulunmadıkça ( kelime olmayan başlarla ve joker kartlarla *
veya ?
yorumlandığında) tahmin edilemez şekilde davranır . Windows arama genellikle aramaları bir ~
sorguya dönüştürür . Örneğin, joker karakterler görünüyor **
ve ?
alfanümerik karakterlerle dize özelliklerini aranıyor ~
, ancak **
alfanümerik olmayanlar hiçbir şey aramıyor. Ayrıca sorgulamayan tek kişi *
, ~
joker karakter olarak kabul edilir COP_WORD_STARTSWITH
$<
.
Sorgularınızı analiz edelim
(
AQS search-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\Users
Basitleştirilmişcrumb=
Unkoted (
, kullandığınızda AND
veya OR
hiçbir şey gruplamadığınız zamanlar için bir gruplama işlecidir , bu nedenle Windows hiçbir şeyi hiçbir şey aramadan gruplamadığınızı düşünür.
*(*
AQS crumb=
Windows ile başlayan çoğu windows search *
, bir crumb=~~query_term
(a search search) dönüştürmeye çalışır . *
bir sorguda normal olarak kabul edilir. Her neyse, bu durumda hiçbir şeyden oluşan bir gruba joker, bu yüzden Windows hiçbir şeyden oluşan bütün grupları (veya her şeyi!) Arar.
"("
AQS crumb=System.Generic.String:"("
Alıntılar kesin ifadeler (Tüm kelime veya mülk eşleşmelidir) arar ve dışında normal karakterlerle vardır *
, ?
ve ""
olmak "
. Bu, başlayan sözcükleri arar (
, ancak sözcükler olmadığından (
, yalnızca yeni olanları arar.(
*"("*
AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("*
Bu delilik, ancak Windows Search, ön ekli ve *
ardından bazı özel karakterleri yıldız derecelendirmesi olarak dönüştürmeye çalışıyor . 1-13 1 yıldızdır. Ayrıca, testimden notu, **
joker karakter yerine hiçbir şey aramadan önce veya sonra alfanümerik karakterler olmadan ve tahmin edilemez.
Bu tam sorgu, anlamı
(1 yıldızlı rating VEYA hiçbir şey ile başlayan Word) VE sadece özellikleri (
. *
tüm özellik olması gerektiği için diğer karakterlerle eşleşmeyecek (
.
Basitleştirilmiş, 1 yıldız dosya adı verilen (
**
sorguda aslında olmayan bir bir yıldız gösterdi (
benim için dosyayı ancak değiştirirken **
için ***
ve geri **
hiçbir sonuç beklendiği verdi ( **
tahmin edilemez)
Diğer cevaplar
~="("
AQS crumb=System.Generic.String:~="("
Bu işe yaramadı, arama miktarı çok yoğunsa pencereler hiçbir şey bulamıyor gibi görünüyor. filename:~="("
çalışır. Temelde, sadece bir (
yerde olan bir dosya adı bul
"*(*"
AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*"
Bu çalıştı. Dosya adı *(*
joker karakterlerle VEYA joker karakterlerle başlayan ve bir özelliğe sahip sözcükleri içerir (
. Her ikisi de ~=
ve ~~
ortalama içerdiğine dikkat edin.