加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 使批处理文件FOR命令工作没有通配符?

发布时间:2020-12-14 02:17:53 所属栏目:Windows 来源:网络整理
导读:我已经看到了如何使用遍历目录的批处理文件并处理与通配符表达式匹配的各种文件的示例,例如: FOR %%f IN (*.ext) DO ( ECHO Found ext file %cd%%%f) 以上内容仅匹配当前目录中以.ext结尾的文件.但是如果我只想匹配一个确切的文件名,如果它存在于该目录中
我已经看到了如何使用遍历目录的批处理文件并处理与通配符表达式匹配的各种文件的示例,例如:

FOR %%f IN (*.ext) DO (
    ECHO Found ext file %cd%%%f
)

以上内容仅匹配当前目录中以.ext结尾的文件.但是如果我只想匹配一个确切的文件名,如果它存在于该目录中呢?我想要的东西:

FOR %%f IN (someFile.ext) DO (
    ECHO Found our file name in %cd%
)

然而,这似乎不起作用; FOR命令将“somefile.ext”解释为字符串,并始终运行FOR循环一次.如何尝试匹配当前目录中的确切文件名,没有通配符?

解决方法

Windows需要FORW循环的“通配符”表达式才能按预期运行.因此,您可以提供此类表达式,同时可能通过通配符匹配额外文件,并使用额外的IF语句将其过滤掉:

FOR %%f IN (somefile.ext*) DO (
    IF /I "%%f"=="somefile.ext" (
        ECHO Found somefile.ext in
        ECHO dir: %cd%
        ECHO.
    )
)

…或者只是首先使用IF语句来检查文件是否存在:

IF EXIST somefile.ext (
    ECHO Found somefile.ext in
    ECHO dir: %cd%
    ECHO.
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读