Board logo

标题: [文件操作] 关于for /r %%i in (*.xls) do echo %%i结果居然包含xlsx [打印本页]

作者: liumtz    时间: 2017-5-18 21:42     标题: 关于for /r %%i in (*.xls) do echo %%i结果居然包含xlsx

for /r %%i in (*.xls) do echo %%i
结果后缀为xlsx的表格文件也包含进去了,无法理解.......,望高手解惑 ==
作者: 老刘1号    时间: 2017-5-18 21:55

示例:
cd.>test.html
dir /b *.htm
copy *.htm *.bak
效果:首先列出test.html文件,随后将其扩展名改为.bak
注释:文件名中有通配符且扩展名有3个字节时,无论其扩展名是否有通配符,都会对扩展名进行通配匹配,
        扩展名之后可以添加; , .等特殊字符,不影响通配匹配。
链接:http://bbs.bathome.net/thread-7629-1-1.html
作者: 老刘1号    时间: 2017-5-18 22:05

本帖最后由 老刘1号 于 2017-5-18 22:08 编辑

解决方法:dir /b|findstr /I /R ".*\.xls$"
作者: liumtz    时间: 2017-5-18 22:13

回复 3# 老刘1号


    也就是说
    for /r %%i in (*.xls) do echo %%i
    相当于
    for /r %%i in (*.xls*) do echo %%i
    两条语句按常规逻辑来理解是等价咯?
作者: 老刘1号    时间: 2017-5-18 22:14

回复 4# liumtz


    嗯,对于CMD这个处理机制……我深感无语
作者: liumtz    时间: 2017-5-18 22:28

回复 5# 老刘1号


    深感无语+1
作者: /zhqsystem/zhq    时间: 2017-5-19 00:25

if %%~xi==.xls




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2