Windows 7 search for file with a special character in the file name?

25

6

I'm trying to find files in Windows 7 that have a parenthesis in the file name.

However, when I type ( or *(* or "(" or *"("* I get either nothing or every file.

Microsoft's "advanced query syntax" reference for desktop search mentions nothing about this.

What gives?

Matias Nino

Posted 2010-08-05T19:40:42.410

Reputation: 1 486

The easy solution is using Everything.

– Michael S. – 2017-09-10T14:05:24.207

Related:  How can I see the available Windows Search Filters?

– Scott – 2017-09-21T22:14:36.653

1

See my related post about searching for the ? character character within text file content. I'm seeing similar problems. http://superuser.com/questions/168638/trouble-trying-to-use-windows-search-to-search-for-file-with-a-question-mark-in-t

– jpierson – 2010-12-02T22:04:25.750

Answers

27

Use following syntax: ~="(".

~= is an escape character and then you can put a special character like (, &, ? etc. in double quotes.

Malik Ali

Posted 2010-08-05T19:40:42.410

Reputation: 271

1But how can I search for files containing the ~ character (e.g. word lock files '~$xyz.doc' ? – Master of Celebration – 2014-07-25T16:17:42.177

3Like this: ~="~$" – Frederic Leitenberger – 2016-04-12T08:16:23.690

1I had to omit the quotation marks for this to work with a period. – sirdank – 2016-05-19T12:15:38.603

5

Got it!

Just had to type this into the search box:

"*(*"

Matias Nino

Posted 2010-08-05T19:40:42.410

Reputation: 1 486

This worked for you with Windows 7? For me it returns all files (same with "*$*", since I was actually looking for dollar signs in filenames.) **What did work for me** was ~="(" (with quotes for parentheses) and ~=$ (no quotes for dollar sign). – ashleedawg – 2018-07-26T06:54:24.400

4

Let's Help!

For any Windows Search issues my recommendation is two things:

  1. Read the AQS (Advanced Query Syntax) documentation, so you know what all the special characters do.
  2. Know that Windows Search will convert your query into precise AQS and unless you are specific in your queries, Windows will guess what AQS you actually meant. The results can be surprising!

First, some of basics on AQS

By default, string file properties (Filename, author, etc.) search with COP_WORD_STARTSWITH $<, so any word (separated by spaces , - _ () [] and more) that starts with your search term. Other non-string properties (Dates, etc.) search with COP_EQUAL =, or exact matches by default (No wild cards, * and ? are literal).

Second, if you are searching in any indexed location, then all non-indexed locations in your query will not be shown.

Third, Click on the Address Bar to see what AQS Windows Search actually searched with. You can ignore location crumbs and display-name: It will be percent encoded, so decode on a site like https://www.url-encode-decode.com/

Fourth, undocumented, * and ? behave unpredicatbly in AQS unless they are in a ~ COP_DOSWILDCARDS query (meaning the non-word starts with, and wild cards * or ? are interpreted). Windows search will usually convert searches to a ~ query. For example, it seems wild cards ** and ? with alphanumeric characters search string properties with ~, but ** without alphanumerics searches nothing. Also single * in non ~ queries are treated as a wildcard with COP_WORD_STARTSWITH $<.

Let's Analyze your queries

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

    Well, unquoted (is a grouping operator for when you use AND or OR, you grouped nothing, so Windows thinks you meant group nothing search everything.

  2. *(* AQS crumb=

    Most windows searches that starts with * windows tries to convert to a crumb=~~query_term (a contains search). * is treated as normal in a contains query. Anyways, in this case you wild card a group of nothing, so Windows searches for all groups of nothing (or everything!)

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

    Quotes search for exact phrases (the entire word or property should match) and are literal characters except for *, ? and "" become ". This searches for words that start with (, but since words are not ( it only searches for properties that are just (

  4. *"("* AQS crumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("* This one is crazy, but Windows Search tries to convert prefixed * followed by certain special characters as star ratings. 1-13 is 1 star. Also note from my testing, ** without any alphanumeric characters before or after it searches for nothing instead of a wild card and is unpredictable.

    This full query means

    (1 star rating OR Word that starts with nothing) AND properties that are just (. * won't match any other characters because the whole property has to be (.

    Simplified it means, 1 star files called (

    ** in the query actually showed a non-one star ( file for me, but when changing the ** to *** and back to ** it gave the expected no results (** is unpredictable)

The other answers

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

    This didn't work, windows seems to not find anything if the amount of searching is too intensive. filename:~="(" does work. Essentially find a filename that contains just a ( somewhere

  2. "*(*" AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*" This worked. Filename contains *(* with wild cards OR any property word that starts with wild cards and has a (. Note, both ~= and ~~ mean contains.

Mr_Moneybags

Posted 2010-08-05T19:40:42.410

Reputation: 211

0


This WORKED PERFECTLY to find 'numbered'/duplicate FILES:

   name:~"*(1)*"

alternately, to find numbered / duplicate FOLDERS use:

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


~="(" as suggested in another answer didn't work for me in Windows 10

In my case, I needed to find FILE COPIES / "numbered files", i.e. find files with "(1)" appended to the end of the filename, e.g. files that are created when/by:

  1. you drag / explorer copy files into a folder, where files with the same filenames already exist.
  2. cloud syncing storage software, such as OneDrive, GoogleDrive, or DropBox encounters syncing issues or conflicts and creates 2 copies of a file, naming one with an appended number "duplicate file", "duplicate file (1)", "duplicate file (2)", etc...

Flak DiNenno

Posted 2010-08-05T19:40:42.410

Reputation: 4 450

This doesn't answer the question (at least not directly). – Máté Juhász – 2017-09-21T06:26:48.667

@MátéJuhász did u downvote me really? really? does using my suggestion without the number "1" not work for you? thanks – Flak DiNenno – 2017-09-21T21:20:28.987

This actually worked for me. Using filename:~"*TEXT*"where TEXT is the exact input with special characters. The top answer did not work, I could not make it work with or without quotes, with or without asterisks. – Liggliluff – 2018-05-24T11:11:31.890

Care to +1 it? – Flak DiNenno – 2018-05-24T11:59:02.893

0

Use this expression to search with filenames,

filename: "*(1)*"

Lucky

Posted 2010-08-05T19:40:42.410

Reputation: 422

-1

Use this in the search box:

~"*(2)*"

coldtones

Posted 2010-08-05T19:40:42.410

Reputation: 1

4Can you explain? – bertieb – 2017-03-13T07:54:01.957

-1

~"* (?).*" for duplicates not exceeding (9), just add another ? for 2 digits. But be careful using * instead of ?. It broadens the search considerably and the results may no longer be desireable.

Meeks

Posted 2010-08-05T19:40:42.410

Reputation: 1