【发布时间】:2019-06-14 12:34:19
【问题描述】:
我正在尝试从目录中获取具有特定扩展名的文件。为此,我使用以下批处理文件代码:
for %%f in (.\*.ext) do (
echo %%f
)
这很好用,除非我有一个扩展名为 .extsomething 的文件。
我尝试添加 $ 通配符以仅获得完全匹配,但它没有显示任何结果。
for %%f in (.\*.ext$) do (
echo %%f
)
既然接受了* 通配符,为什么不考虑$?
如何仅获取具有确切扩展名的文件?
【问题讨论】:
-
$ 更像是一个正则表达式选项。您需要将 DIR 命令的输出通过管道传输到 FINDSTR 以具有一些有限的正则表达式功能。
-
文件的短文件名与您的模式匹配。它只会在短名称中使用扩展名的前三个字母。 Filename.ext 包括通配符与短版本和长版本匹配。
-
@catcat 我很难听懂你想告诉我的内容
-
@GarryWhite 我把它变成了一个更长的答案。这是您的实际问题既然接受了 * 通配符,为什么不考虑 $?。答案是——
$不是通配符。 -
@catcat 你说得对,谢谢你的解释,我也根据我的真实要求更新了我的问题。
标签: batch-file cmd