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

如何在批处理脚本中排除指定文件夹搜索嵌套目录的.csproj文件?

批处理脚本排除指定文件夹下的目标文件

目录结构

Main Folder
  --ProjA Folder
     --A Folder
       --A.csproj
      --Aa Folder
        -Aa.csproj
     -- B Folder
      --B.csproj
     -- C Folder
       --c.csproj

当前代码(会列出所有.csproj文件路径)

Set MainDir="C:\users\Main"
cd %MainDir%
for /f "delims=" %%x in ('dir /s /b *.csproj') do if exist %%x (
    echo %%~dpx
)

解决方案:排除指定文件夹下的文件

要排除B Folder下的B.csproj,只需在循环中增加路径过滤逻辑,判断文件路径是否包含目标文件夹名,不包含则输出路径。

修改后的代码:

Set MainDir="C:\users\Main"
cd %MainDir%
for /f "delims=" %%x in ('dir /s /b *.csproj') do (
    rem 检查路径是否包含"B Folder",不包含则输出
    echo "%%x" | findstr /i /c:"B Folder" >nul || echo %%~dpx
)

逻辑说明

  • findstr /i /c:"B Folder":在文件路径中搜索是否包含B Folder,/i忽略大小写,/c确保完整匹配目标字符串
  • >nul:将搜索结果重定向到空,避免干扰控制台输出
  • ||:逻辑或运算符,仅当前面的搜索命令执行失败(即路径不包含目标文件夹)时,才执行输出操作

如果需要排除多个文件夹,可直接扩展搜索规则:

Set MainDir="C:\users\Main"
cd %MainDir%
for /f "delims=" %%x in ('dir /s /b *.csproj') do (
    echo "%%x" | findstr /i /c:"B Folder" /c:"AnotherFolder" >nul || echo %%~dpx
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 19:37:40