Filename wilcard characters in cmd.exe

  • Thread starter Thread starter Sean Nelson
  • Start date Start date
S

Sean Nelson

I'm probably a relic, but I expected the old standard "*" (match zero or more
characters) and "?" (match any 1 character) filename wildcarding characters
to work in a Command Prompt window. They do work, after a fashion, but not
in the way I would expect. For example:

dir *.d?? displays files such as "Test.docx"

dir *s.* displays files such as "exam.xls"

Interestingly, the same wildcarded search patterns work as I expect in an
Explorer search window.

What exactly are the wildcard characters that cmd.exe accepts, and how are
they interpreted?
 
Sean Nelson said:
I'm probably a relic, but I expected the old standard "*" (match zero or
more
characters) and "?" (match any 1 character) filename wildcarding
characters
to work in a Command Prompt window. They do work, after a fashion, but
not
in the way I would expect. For example:

dir *.d?? displays files such as "Test.docx"

dir *s.* displays files such as "exam.xls"

Interestingly, the same wildcarded search patterns work as I expect in an
Explorer search window.

What exactly are the wildcard characters that cmd.exe accepts, and how are
they interpreted?

You're tripping over the Short File Name (SFN) representation of your files.
When you enter the command
dir test.* /x
then you will immediately see why your own dir command worked the way it
did.
 
You're tripping over the Short File Name (SFN) representation of your files.
When you enter the command
dir test.* /x
then you will immediately see why your own dir command worked the way it
did.

Thanks - that explains the *.d?? pattern match. Is there a way to prevent
matches against the short file names (other than turning off short filename
generation altogether)?

But it doesn't explain why "*s.???" matches "exam.xls", since this file has
no short file name.
 
See below.

Sean Nelson said:
Thanks - that explains the *.d?? pattern match. Is there a way to prevent
matches against the short file names (other than turning off short
filename
generation altogether)?
No, there isn't while SFN generation is active.
But it doesn't explain why "*s.???" matches "exam.xls", since this file
has
no short file name.
You've got me there. It appears that the "*s" bit picks up the "s" in "xls"
.. . .
 
That would be the difference between ? and *. * means everything - I only
use * at the end.
 
Back
Top