Problemy z próbą użycia usługi Windows Search do wyszukania pliku ze znakiem zapytania w treści

15

Wygląda na to, że Windows Search ma problemy, gdy określam znak zapytania jako treść, której szukam w moich plikach.

Próbowałem:

  • zawartość:?
  • zawartość:"?"
  • zawartość:"\?"
  • zawartość:\?
  • zawartość:% 3f
  • treść: „% 3f”
  • treść: \ 3f
  • treść: „\ 3f”
  • zawartość: \ 00 \ 00 \ 00 \ 3F

ale każdy z nich nie daje rezultatów, gdy rzeczywiście mam pliki zawierające? w zakresie wyszukiwania. Jeśli zamiast tego szukam czegoś podobnego: happy, rzeczywiście znajdzie wszystkie pliki z frazą „happy” w tych samych plikach.

Zakładam, że Windows Search traktuje niektóre znaki, takie jak znak zapytania, jako znaki specjalne, które mogą występować w wyrażeniach wieloznacznych. Aby przetestować tę teorię, szukałem również plików zawierających gwiazdkę * i rzeczywiście mam ten sam problem, co przy wyszukiwaniu treści znaku zapytania. Zastanawiam się, czy istnieje jakikolwiek sposób, aby uruchomić wyszukiwanie, w którym mogę szukać dosłownego wyrażenia bez jakiegokolwiek dopasowania symboli wieloznacznych lub przynajmniej sposób na uniknięcie znaków specjalnych w wyrażeniu.

Przy okazji korzystam z systemu Windows 7 Enterprise.

jpierson
źródło

Odpowiedzi:

12

Spróbuj ~ =? gdzie ? jest postacią, której szukasz.

Monkerdermatolog
źródło
4
Doskonały! zawartość: ~ =? pracował upiększyć! Z ciekawości skąd pomysł na użycie ~ = jako sekwencji ucieczki?
jpierson
Próbuję wyszukać „my_string”. Wydaje się, że traktuje podkreślenie jako spację, przecinek lub coś, i pokazuje mi wszystko, co zawiera albo „mój”, albo „ciąg”, albo jedno i drugie.
Shavais,
Jak mogę tego użyć do wyszukiwania plików w pliku? Na przykład:content:"reports.asp"
John Odom
Składnia wyszukiwania w systemie Windows zawiera wiele znaków specjalnych, więc musisz zacytować większość z nich, aby uniknąć ich interpretacji. Zobacz msdn.microsoft.com/en-us/library/bb266512(v=vs.85).aspx . Jednak, ? i *, cytowane lub nie, są zawsze interpretowane jako dzikie karty DOS. * dla wszystkich znaków? za 1 znak Jeśli klikniesz pasek adresu Eksploratora Windows, zobaczysz, że Windows konwertuje wyszukiwanie na prawdziwą składnię zapytania. ? i * zostanie zinterpretowany jako crumb = nazwa pliku% 3A ~?% 20OR% 20System.Generic.String% 3A? (ciąg dalszy) poniżej
Mr_Moneybags
Oznacza filename:~?to wyszukiwanie jako znak wieloznaczny DOS, nazwy plików, które rozpoczynają się od dowolnego znaku (zasadniczo każdego pliku!). OR System.Generic.String:?oznacza LUB jakąkolwiek właściwość / treść pliku, której SŁOWO ZACZYNA SIĘ dosłownie? Moja rada, przeczytaj dokumentację AQS i kliknij pasek adresu, aby zobaczyć, na co Windows Search ponownie interpretuje AQS. Zwróć również uwagę, domyślnie, właściwości pliku ciągu (nazwa pliku, autor itp.) Domyślnie szukaj za pomocą WORD_STARTSWITH $<, więc każde słowo, które zaczyna się od wyszukiwanego terminu. Wyszukiwanie innych właściwości nieciągłych (daty itp.) Za pomocą EQUAL=
Mr_Moneybags
6

Wygląda na to, że Microsoft usunął możliwość wyszukiwania tylko znaków specjalnych. Aby wyszukiwać za pomocą znaków specjalnych, musi być do nich dołączone słowo ( Example: Who?). Znów musi być słowo , nie tylko symbol wieloznaczny, ze znakiem specjalnym. Jest tak, ponieważ Windows Search ignoruje znaki specjalne, z wyjątkiem symboli wieloznacznych ?. Na tej stronie z poradami i wskazówkami dotyczącymi wyszukiwania jedynymi symbolami wieloznacznymi dostępnymi w usłudze Windows Search są gwiazdka i znak zapytania. Wydaje się jednak, że działa tylko gwiazdka. Nawet podczas próby jego przykładu s?n, znaleziony na tej samej stronie strony.

Oto cytat z postu na forach Vista64: ( Źródło )

W rzeczywistości problem jest nieco inny. Wyszukiwanie jest teraz oparte na słowach, a nie na znakach . Nawiasy klamrowe są uznawane za interpunkcję przez wyszukiwanie, a nie dzikie karty. Aby uzyskać znaczące wyniki, zapytania zawierające znaki interpunkcyjne muszą również zawierać słowa, frazy lub symbole wieloznaczne . Na przykład, jeśli szukam tego: [*]lub tego: {*}dostaję kilka plików, które mają nazwę w wyrażeniu w nawiasach, tak jak się spodziewałbym. Więc spróbuj.

SgtOJ
źródło
1
Niestety nie sądzę, aby twoje wyjaśnienie było całkowicie dokładne. Kiedy szukałem treści: „kora?” Dopasowuję dokumenty, które zawierają zarówno szczekanie? i po prostu szczekaj w nich. Wygląda więc na to, że interpunkcja jest po prostu ignorowana.
jpierson
Sir, racja. To właśnie powiedziałem. Z mojej odpowiedzi: Dzieje się tak, ponieważ Windows Search ignoruje znaki specjalne, z wyjątkiem znaku wieloznacznego.
SgtOJ,
1
... Nie tylko dostosowałem swoją odpowiedź do twojego problemu, używając tylko znaku zapytania. Zamiast tego moja odpowiedź wyjaśnia, co się dzieje z wszystkimi znakami specjalnymi, z wyjątkiem znaku wieloznacznego - gwiazdki. Uwaga: nie mówię, że jest jedna karta wieloznaczna, ale stwierdziłem, że tylko gwiazdka działa jako symbol wieloznaczny. Daj mi znać, jeśli znajdziesz inny, aby moja odpowiedź mogła zostać zaktualizowana.
SgtOJ,
4

W systemie Windows 7 miałem podobny problem, tyle że próbowałem wyszukać słowa kluczowe otoczone nawiasami kwadratowymi („[” również zostało zignorowane podobnie jak „?”, „(„, ”]” Itd.) W nazwie pliku. Co zadziałało dla mnie jest to:

Nazwa pliku:"*[Cumbia]*" OR filename:"*[Reggae]*"

Znajduje to wszystkie moje utwory, które oznaczyłem ciągiem tekstowym [Cumbia]lub [Reggae]w nazwach plików. Chciałbym wtedy zaznaczyć wszystkie pliki, a następnie kliknąć prawym przyciskiem myszy zaznaczenie, aby wywołać funkcję Sendto, aby wysłać wszystkie utwory do mojego programu do odtwarzania muzyki (w tym przypadku Winampa).

Scott Cedars
źródło
Doskonały. Używanie filenamezamiast używania contentdziałało dla mnie. Próbowałem odfiltrować duplikaty plików mających plik (1) .jpg i plik (2) .jpg i użyłem tego wyrażenia filename: "*(1)*"i filename: "*(2)*".
Lucky
2

Spróbuj content: ~="?"lub extension: ~="?"jakiejkolwiek specjalnej postaci, której szukasz w cytatach itp.

Chris Lottes
źródło
1

Nie używam wyszukiwania systemu Windows, ale zastanawiam się, czy obsługuje znaki specjalne, jak opisano w tym artykule Microsoft:

Korzystanie z protokołu wyszukiwania

Jeśli tak, możesz spróbować użyć %3fznaku zapytania.

harrymc
źródło
Wypróbowałem Twoją sugestię i szukałem% 3f, treści:% 3f i treści: „% 3f”, ale bezskutecznie. Próbowałem też kombinacji z dzikimi kartami, ale nadal nie miałem szczęścia. W każdym razie dziękuję za sugestię.
jpierson
1

Wystarczy użyć programu PowerShell do przeszukiwania zawartości pliku:

Get-ChildItem -recurse | Select-String -pattern "dummy" | ścieżka grupy | wybierz imię

użytkownik2257658
źródło
Nie odpowiadając bezpośrednio na pytanie, dało mi to dokładnie to, czego potrzebowałem jako alternatywy, dzięki! Muszę nauczyć się więcej PowerShell.
Mark Adamson,