Filename wilcard characters in cmd.exe

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?
 
P

Pegasus \(MVP\)

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.
 
S

Sean Nelson

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.
 
P

Pegasus \(MVP\)

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"
.. . .
 
J

Jason

That would be the difference between ? and *. * means everything - I only
use * at the end.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top