递归删除 cmake-build-debug、.idea 文件夹和 CMakeLists.txt 文件
@echo off
setlocal DisableDelayedExpansion
echo 开始递归删除 cmake-build-debug、.idea 文件夹和 CMakeLists.txt 文件...
:: 获取脚本所在目录
set "script_dir=%~dp0"
set "script_dir=%script_dir:~0,-1%"
echo 当前处理目录: %script_dir%
call :DeleteItems "%script_dir%"
echo 操作完成!
pause
exit /b
:: 函数:递归删除目标文件夹和文件
:DeleteItems
set "current_dir=%~1"
echo 正在处理目录: %current_dir%
pushd "%current_dir%" >nul 2>&1
if errorlevel 1 (
echo 错误:无法进入目录 %current_dir%
exit /b 1
)
:: 删除 cmake-build-debug 文件夹
if exist "cmake-build-debug" (
echo 删除文件夹: cmake-build-debug
rmdir /S /Q "cmake-build-debug"
if errorlevel 1 (
echo ? 删除失败: cmake-build-debug
) else (
echo ? 已删除: cmake-build-debug
)
)
:: 删除 .idea 文件夹
if exist ".idea" (
echo 删除文件夹: .idea
rmdir /S /Q ".idea"
if errorlevel 1 (
echo ? 删除失败: .idea
) else (
echo ? 已删除: .idea
)
)
:: 删除 CMakeLists.txt 文件
if exist "CMakeLists.txt" (
echo 删除文件: CMakeLists.txt
del /F /Q "CMakeLists.txt"
if errorlevel 1 (
echo ? 删除失败: CMakeLists.txt
) else (
echo ? 已删除: CMakeLists.txt
)
)
:: 遍历子目录并递归调用
for /D %%d in (*) do (
set "subdir=%%d"
setlocal EnableDelayedExpansion
if /i not "!subdir!"=="cmake-build-debug" ^
if /i not "!subdir!"=="." ^
if /i not "!subdir!"==".." (
call :DeleteItems "%current_dir%\!subdir!"
)
endlocal
)
popd
goto :eof