Windows 7 szuka pliku ze znakiem specjalnym w nazwie pliku?

23

Próbuję znaleźć pliki w systemie Windows 7, które zawierają nawiasy w nazwie pliku.

Jednak po wpisaniu (lub *(*lub "("lub *"("*nie otrzymuję nic lub każdego pliku.

Odwołanie Microsoft do „zaawansowanej składni zapytań” do wyszukiwania na pulpicie nic nie wspomina o tym.

Co daje?

Matias Nino
źródło
1
Zobacz mój powiązany post dotyczący wyszukiwania? znak w treści pliku tekstowego. Widzę podobne problemy. superuser.com/questions/168638/…
jpierson
Łatwym rozwiązaniem jest użycie Wszystko .
Michael S.,

Odpowiedzi:

24

Użyj następującej składni: ~="(".

~=jest znakiem ucieczki, a następnie można umieścić znak specjalny jak (, &, ?itd. w cudzysłowach.

Malik Ali
źródło
1
Ale w jaki sposób mogę wyszukiwać pliki zawierające znak ~ (np. Pliki blokujące słowo „~ $ xyz.doc”?
Master of Celebration
2
W ten sposób:~="~$"
Frederic Leitenberger,
1
Musiałem pominąć cudzysłowy, aby działało to z kropką.
sirdank
5

Rozumiem!

Wystarczy wpisać to w polu wyszukiwania:

"*(*"
Matias Nino
źródło
To działało dla ciebie z Windows 7? Dla mnie to zwraca wszystkie pliki (tak samo z "*$*", bo był rzeczywiście szuka dolara w nazwach plików.) Co zrobiłem pracę dla mnie było ~="("(z cytatami o nawiasach) oraz ~=$(bez cudzysłowów dla dolara).
ashleedawg
3

Pomóżmy!

W przypadku jakichkolwiek problemów z wyszukiwaniem systemu Windows zaleceniem są dwie rzeczy:

  1. Przeczytaj dokumentację AQS (Advanced Query Syntax) , aby wiedzieć, co robią wszystkie znaki specjalne.
  2. Wiedz, że Windows Search przekształci twoje zapytanie w dokładny AQS i chyba, że ​​jesteś konkretny w swoich zapytaniach, Windows zgadnie, co AQS masz na myśli. Wyniki mogą być zaskakujące!

Po pierwsze, niektóre podstawy AQS

Domyślnie właściwości pliku ciągu ( nazwa pliku, autor itp.) Wyszukują za pomocą COP_WORD_STARTSWITH $<, więc każde słowo (oddzielone spaces , - _ () []i więcej) zaczyna się od wyszukiwanego terminu. Inne właściwości nieciągłe (daty itp.) COP_EQUAL =Domyślnie wyszukują lub dopasowują dokładnie (bez symboli wieloznacznych *i ?są dosłowne).

Po drugie, jeśli szukasz w dowolnej indeksowanej lokalizacji, wówczas wszystkie nieindeksowane lokalizacje w zapytaniu nie zostaną wyświetlone.

Po trzecie, kliknij pasek adresu, aby zobaczyć, z czym wyszukiwarka Windows AQS faktycznie szukała. Możesz zignorować okruchy lokalizacji i wyświetlaną nazwę: będzie ona kodowana procentowo, więc dekoduj na stronie takiej jak https://www.url-encode-decode.com/

Po czwarte, nieudokumentowane *i ?zachowują się nieprzewidywalnie w AQS, chyba że są w ~ COP_DOSWILDCARDSzapytaniu (co oznacza, że nie-słowo zaczyna się od, symbole wieloznaczne *lub ?są interpretowane). Wyszukiwanie w systemie Windows zwykle konwertuje wyszukiwania na ~zapytanie. Na przykład wydaje się, że symbole wieloznaczne **i ?znaki alfanumeryczne wyszukują właściwości ciągu znaków ~, ale **bez znaków alfanumerycznych niczego nie wyszukuje. Również pojedyncze *w nie- ~zapytaniach są traktowane jako symbol wieloznaczny COP_WORD_STARTSWITH $<.

Przeanalizujmy twoje zapytania

  1. (AQS search-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\UsersUproszczonecrumb=

    Cóż, bez cudzysłowu (jest operatorem grupowania, gdy używasz ANDlub ORnic nie zgrupowałeś, więc system Windows uważa, że ​​nic nie znaczyło, że grupa szuka wszystkiego.

  2. *(* AQS crumb=

    Większość wyszukiwań systemu Windows, które zaczynają się od systemu *Windows, próbuje przekonwertować na crumb=~~query_term(a zawiera wyszukiwanie). *jest traktowane normalnie w zapytaniu zawierającym. W każdym razie, w tym przypadku dziczysz grupę nic, więc Windows szuka wszystkich grup nic (lub wszystkiego!)

  3. "(" AQS crumb=System.Generic.String:"("

    Szukaj cytaty dla dokładnego oznaczenia (cały wyraz lub mienia należy dopasowywać) i są literalne znaki z wyjątkiem *, ?i ""stać ". Wyszukuje słowa zaczynające się od (, ale ponieważ słowa to nie (tylko, wyszukuje tylko właściwości, które są sprawiedliwe(

  4. *"("*AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("* Ten jest szalony, ale Windows Search próbuje przekonwertować prefiks, *a następnie pewne znaki specjalne jako gwiazdki. 1-13 to 1 gwiazdka. Zwróć też uwagę na moje testy, **bez żadnych znaków alfanumerycznych przed ani po tym, że nie szuka on niczego zamiast znaku wieloznacznego i jest nieprzewidywalny.

    To pełne zapytanie oznacza

    (1 gwiazdka LUB słowo zaczynające się od niczego) ORAZ właściwości, które są po prostu (. *nie będzie pasować do żadnych innych znaków, ponieważ cała właściwość musi być (.

    Uproszczone oznacza, że ​​nazywane są 1 gwiazdkami (

    **w zapytaniu rzeczywiście wykazały niż jedna gwiazda (plik dla mnie, ale przy zmianie **do ***iz powrotem **dała oczekiwany bez rezultatu ( **nieprzewidywalny)

Inne odpowiedzi

  1. ~="(" AQS crumb=System.Generic.String:~="("

    To nie działało, system Windows wydaje się niczego nie znajdować, jeśli wyszukiwanie jest zbyt intensywne. filename:~="("działa. Zasadniczo znajdź nazwę pliku, który zawiera tylko (gdzieś

  2. "*(*"AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*" To zadziałało. Nazwa pliku zawiera symbole *(*wieloznaczne LUB dowolne słowo własności, które zaczyna się od symboli wieloznacznych i ma znak (. Uwaga, zarówno ~=i ~~średnia zawiera.

Mr_Moneybags
źródło
0

DZIAŁAŁO PERFEKCYJNIE, aby znaleźć „ponumerowane” / zduplikowane PLIKI :

   name:~"*(1)*"

alternatywnie , aby znaleźć numerowane / zduplikowane FOLDERY użyj:

   kind:folder name:~"*(1)*"


~="(" jak sugerowano w innej odpowiedzi, nie działało dla mnie w systemie Windows 10

W moim przypadku musiałem znaleźć PLIKI KOPII / „pliki numerowane”, tj. Znaleźć pliki z „(1)” dołączonym na końcu nazwy pliku, np. Pliki, które są tworzone, gdy / przez:

  1. przeciągasz / eksplorator kopiuje pliki do folderu, w którym już istnieją pliki o tych samych nazwach plików.
  2. oprogramowanie pamięci masowej do synchronizacji w chmurze, takie jak OneDrive, GoogleDrive lub DropBox, napotyka problemy z synchronizacją lub konflikty i tworzy 2 kopie pliku, nadając mu nazwę z dołączonym numerem „duplikat pliku”, „duplikat pliku (1)”, „duplikat pliku (2) ) ”itp.
Flak DiNenno
źródło
To nie odpowiada na pytanie (przynajmniej nie bezpośrednio).
Máté Juhász
@ MátéJuhász, czy naprawdę oddałeś mi głos? naprawdę? czy korzystanie z mojej sugestii bez numeru „1” nie działa dla Ciebie? dzięki
Flak DiNenno
To faktycznie działało dla mnie. Używanie filename:~"*TEXT*"gdzie TEKST jest dokładnym wprowadzeniem ze znakami specjalnymi. Najlepsza odpowiedź nie działała, nie mogłem sprawić, by działała z cytatami lub bez, z gwiazdkami lub bez nich.
Liggliluff
Chcesz dać +1? 😉
Flak DiNenno
0

Użyj tego wyrażenia, aby wyszukiwać według nazw plików,

filename: "*(1)*"
Szczęściarz
źródło
-1

Użyj tego w polu wyszukiwania:

~"*(2)*"
coldtones
źródło
3
Możesz wytłumaczyć?
bertieb
-1

~ „* (?). *” dla duplikatów nieprzekraczających (9), wystarczy dodać kolejny? dla 2 cyfr. Ale bądź ostrożny używając * zamiast? Znacznie rozszerza to wyszukiwanie, a wyniki mogą nie być pożądane.

Meeks
źródło