如何在批处理脚本中排除指定文件夹搜索嵌套目录的.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
相关产品推荐
相关产品推荐

