我搜索了很多但没有找到相关的问题。如果我的问题是重复的,请事先提前。 我有一堆名字如下所示的文件:
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
我想知道是否有办法只在文件长名称上应用通配符???
答案 0 :(得分:1)
我尝试使用for %a in (*1.txt) do echo %a
并且行为相同。
所以我可以建议你使用findstr
管道输出并匹配正则表达式:
dir /B | findstr /R ".*1\.txt"
.*
就像正则表达式中的*
:任何次数的任何字符\.
告诉正则表达式引擎匹配实际点,而不是正则表达式小丑点。/B
dir
选项仅打印文件名,使findstr
的工作更轻松
只会返回
First Text Document 1.txt