Windows 单字符通配符返回超出预期

E B*_*own 3 windows directory-listing

我正在尝试在 Windows 命令外壳程序中执行文件名由 8 个字符后跟一个句点和一个文件扩展名组成的文件的目录列表。我使用的通配符模式是“????????.TIF”。这将返回所有带有“.TIF”扩展名的文件名,而不管文件名的预扩展部分的长度。例子:

目录 A*.TIF

返回 ABCDEFGH.TIF 和 ABCDEFGHIJ.TIF

目录 ??????????.TIF

还返回两个文件。我希望只返回第一个,因为它是两个匹配模式的唯一一个(8 个单个字符后跟“.TIF”。)这种行为的解释是什么?

预先感谢您的任何答复。

Dav*_*ebb 7

我认为问题在于它ABCDEFGHIJ.TIF一个类似的短名称ABCDEF~1.TIF并且与您的模式匹配。

如果您使用,DIR /X您将看到短名称 - 即。8.3 文件名 - 所有文件的名称。

你可以尝试这样的事情:

DIR /B | FINDSTR /R /I "^........\.TIF"
Run Code Online (Sandbox Code Playgroud)

这在正则表达式模式下使用 FINDSTR 以确保.TIF. 有关 FINDSTR 的更多帮助,请FINDSTR /?在命令行中输入。