有没有办法强制CMD的dir命令在长名称上应用通配符?

时间:2016-09-21 06:18:54

标签: cmd directory wildcard

我搜索了很多但没有找到相关的问题。如果我的问题是重复的,请事先提前。 我有一堆名字如下所示的文件:

                    Eighth Text Document - Copy 8.txt
                    Fifth Text Document - Copy 5.txt
                    First Text Document 1.txt
                    Fourth Text Document - Copy 4.txt
                    Ninth Text Document - Copy 9.txt
                    Second Text Document - Copy 2.txt
                    Seventh Text Document - Copy 7.txt
                    Sixth Text Document - Copy 6.txt
                    Third Text Document - Copy 3.txt

当我使用dir命令查找名称中包含数字“1”的文件时:

            dir *1.txt

它列出了所有文件:

                Eighth Text Document - Copy 8.txt
                Fifth Text Document - Copy 5.txt
                First Text Document 1.txt
                Fourth Text Document - Copy 4.txt
                Ninth Text Document - Copy 9.txt
                Second Text Document - Copy 2.txt
                Seventh Text Document - Copy 7.txt
                Sixth Text Document - Copy 6.txt
                Third Text Document - Copy 3.txt

似乎通配符应用于短名称:

                EIGHTH~1.TXT
                FIFTHT~1.TXT
                FIRSTT~1.TXT
                FOURTH~1.TXT
                NINTHT~1.TXT
                SECOND~1.TXT
                SEVENT~1.TXT
                SIXTHT~1.TXT
                THIRDT~1.TXT

我想知道是否有办法只在文件长名称上应用通配符???

1 个答案:

答案 0 :(得分:1)

我尝试使用for %a in (*1.txt) do echo %a并且行为相同。

所以我可以建议你使用findstr管道输出并匹配正则表达式:

dir /B | findstr /R ".*1\.txt"
  • .*就像正则表达式中的*:任何次数的任何字符
  • \.告诉正则表达式引擎匹配实际点,而不是正则表达式小丑点。
  • {li> /B dir选项仅打印文件名,使findstr的工作更轻松

只会返回

First Text Document 1.txt