You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows批处理FOR /d /r循环中排除指定匹配的文件夹?

如何在Windows批处理FOR循环中排除特定文件夹

当然可以实现!你只需要在原循环的执行块里添加一个条件判断,精准过滤掉名称为foobar的文件夹就行,其余包含foo的文件夹不受影响。

直接看修改后的完整命令:

FOR /d /r "topDir" %%G in (*foo*) DO (
    IF /I NOT "%%~nG"=="foobar" (
        echo %%G
    )
)

下面拆解一下关键部分:

  • 原命令的FOR /d /r "topDir" %%G in (*foo*):负责递归遍历topDir下所有名称包含foo的文件夹,/d指定遍历文件夹而非文件,/r开启递归搜索。
  • 新增的IF /I NOT "%%~nG"=="foobar":
    • %%~nG是批处理的变量扩展语法,用来提取当前文件夹的纯名称(不带完整路径)
    • /I参数让判断不区分大小写(如果需要严格区分大小写,去掉这个参数即可)
    • NOT表示当文件夹名称不等于foobar时,才执行后续的echo %%G输出操作

这样一来,所有名字里带foo但不是正好叫foobar的文件夹都会被正常输出,完美满足你的需求。

内容的提问来源于stack exchange,提问作者zhzoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:45:00