質問: windows 7では、ファイル名に特殊文字が含まれているファイルを検索しますか? ファイル名に括弧が含まれているwindows 7のファイルを検索しようとしています。ただし、(または*(*または"("または*"("*何もないか、すべてのファイルが表示されます。microsoftのデスクトップ検索に関する「高度なクエリ構文」リファレンスでは、これについては何も言及されていません。何ができますか?
回答: 助けよう!windows searchの問題については、次の2つをお勧めします。 aqs(高度なクエリ構文)のドキュメント を読んで、すべての特殊文字の機能を理解してください。 windows searchがクエリを正確なaqsに変換することを知ってください。クエリで特定されない限り、windowsは実際のaqsを推測します。結果は驚くべきことです! まず、aqsの基本のいくつかデフォルトでは、文字列ファイルのプロパティ(ファイル名、作成者など)はcop_word_startswith $<で検索するため、次の文字で始まるすべてのword(spaces , - _ () []などで区切られています)検索語。その他の文字列以外のプロパティ(日付など)は、デフォルトでcop_equal =、または完全一致で検索します(ワイルドカードなし、*および?はリテラルです)。次に、anyインデックス付きの場所で検索している場合、クエリ内のすべての非インデックス付きの場所は表示されません。3番目に、アドレスバーをクリックして、aqs windows searchが実際に検索した内容を確認します。場所のクラムと表示名は無視できます。これはパーセントエンコードされるため、 https://www.url-encode-decode.com/ のようなサイトでデコードします。第4に、ドキュメント化されていない*および?は、~ cop_doswildcardsクエリ(つまり、non-wordで始まり、ワイルドカード*または?が解釈される)でない限り、aqsで予期せぬ動作をします。 windows検索は通常、検索を~クエリに変換します。たとえば、英数字を含む**および?は、~を含む文字列プロパティを検索しますが、英数字を含まない**は何も検索しません。また、*以外のクエリの単一の~は、cop_word_startswith $<を使用してワイルドカードとして扱われます。クエリを分析しましょう ( aqs search-ms:displayname=search results in users&crumb=&crumb=location:c:\users簡略化されたcrumb= まあ、引用符で囲まれていない(は、andまたはorを使用する場合のグループ化演算子です。何もグループ化していないので、windowsは、何も検索せずにグループ化するつもりはないと考えています。 *(* aqs crumb= *ウィンドウで始まるほとんどのウィンドウ検索は、crumb=~~query_term(aを含む検索)に変換しようとします。 *は、containsクエリでは通常どおり処理されます。とにかく、この場合は、何もないグループをワイルドカードにするため、windowsは何もないグループ(またはすべて!)をすべて検索します。 "(" aqs crumb=system.generic.string:"(" 引用符は完全に一致する語句を検索し(wordまたはプロパティ全体が一致する必要があります)、*を除くリテラル文字であり、?および""は"になります。これは、(で始まる単語を検索しますが、単語は(ではないため、(であるプロパティのみを検索します *"("* aqs crumb=rating:(>=1 <13) or system.generic.string:** system.generic.string:"("*これはおかしいですが、windows searchは、接頭辞付きの*に続いて特定の特殊文字をスター評価として変換しようとします。 1-13は1つ星です。また、私のテストから、ワイルドカードの代わりに何も検索せず、予測の前または後に英数字を含まない**に注意してください。 この完全なクエリは、 (1つ星評価or何も始まらない単語)andプロパティは、(だけです。*は、プロパティ全体が(でなければならないため、他の文字と一致しません。 簡略化すると、(と呼ばれる1つ星のファイル クエリの**は実際には1つ星ではない(ファイルを示していましたが、**を***に変更して**に戻すと、予期した結果が得られませんでした(**は予測不能です) 他の答え ~="(" aqs crumb=system.generic.string:~="(" これは機能しませんでした。検索の量が多すぎる場合、ウィンドウは何も見つけられないようです。 filename:~="("は機能します。基本的に、(のみを含むファイル名をどこかに見つける "*(*" aqs crumb=filename:~~"*(*" or system.generic.string:"*(*"これはうまくいきました。ファイル名にワイルドカードを含む*(*が含まれるorワイルドカードで始まり、(を含む任意のプロパティword。注、~=と~~はどちらも含む.