bat 如何实现对文件夹进行深层次遍历,并判断文件夹中的子文件夹中是否包含.png文件如果包含则停止这个文件夹(或者子文件夹)的遍历然后对这个包含.png资源的目录进行操作。然后继续遍历其它文件夹
时间: 2023-07-30 20:08:04 浏览: 60
可以使用递归的方式对文件夹进行深层次遍历,判断是否包含.png文件,如果包含则停止该文件夹(或子文件夹)的遍历,并对该文件夹进行操作,然后继续遍历其他文件夹。下面是示例代码:
```batch
@echo off
setlocal enabledelayedexpansion
set "target_folder=C:\test" REM 目标文件夹路径
set "found_png=false" REM 是否找到了.png文件
call :traverse_folder "%target_folder%"
if not "%found_png%"=="true" (
echo 没有找到包含.png文件的文件夹
)
goto :eof
:traverse_folder
set "folder=%~1"
for /f "delims=" %%f in ('dir /b /a:d "%folder%"') do (
set "sub_folder=!folder!\%%f"
call :traverse_folder "!sub_folder!"
if "!found_png!"=="true" goto :eof
)
for /f "delims=" %%f in ('dir /b /a-d "%folder%"') do (
if "%%~xf"==".png" (
set "found_png=true"
echo 发现.png文件的文件夹:%folder%
REM 在这里添加对该文件夹的操作
goto :eof
)
)
goto :eof
```
其中,`:traverse_folder` 是一个递归的函数,用于对指定文件夹进行遍历。首先遍历文件夹中的子文件夹,然后遍历文件夹中的文件,判断是否为.png文件,如果是则停止遍历并对该文件夹进行操作。`set "found_png=false"` 用于记录是否找到了包含.png文件的文件夹,如果没有则在最后输出提示信息。`setlocal enabledelayedexpansion` 是启用延迟环境变量扩展,以便在循环中使用 `!folder!` 和 `!sub_folder!` 这类变量。
相关推荐
![bat](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)