@echo off
setlocal enabledelayedexpansion
echo ===================================================
echo 警告:此操作将删除文件夹下所有文件/文件夹。
echo 请务必备份好原文件夹,删除后无法恢复!
echo ===================================================
echo.
:promptUser
echo 请选择要删除的内容:
echo 1. 删除所有文件和文件夹
echo 2. 仅删除文件
echo 3. 仅删除文件夹
set /p choice=输入选项 (1/2/3):
if "%choice%"=="1" goto deleteAll
if "%choice%"=="2" goto deleteFilesOnly
if "%choice%"=="3" goto deleteFoldersOnly
echo 无效的选项,请重新选择。
goto promptUser
:deleteAll
echo 正在删除所有文件和文件夹...
for /d %%i in (*) do (
call :deleteAllRecursive "%%i"
)
goto end
:deleteFilesOnly
echo 正在删除所有文件...
for /d %%i in (*) do (
call :deleteFilesOnlyRecursive "%%i"
)
goto end
:deleteFoldersOnly
echo 正在删除所有文件夹...
for /d %%i in (*) do (
call :deleteFoldersOnlyRecursive "%%i"
)
goto end
:deleteAllRecursive
for /d %%j in ("%~1\*") do (
call :deleteAllRecursive "%%j"
rd /s /q "%%j"
)
del /q "%~1\*.*"
exit /b
:deleteFilesOnlyRecursive
for /d %%j in ("%~1\*") do (
call :deleteFilesOnlyRecursive "%%j"
)
del /q "%~1\*.*"
exit /b
:deleteFoldersOnlyRecursive
for /d %%j in ("%~1\*") do (
call :deleteFoldersOnlyRecursive "%%j"
rd /s /q "%%j"
)
exit /b
:end
echo 删除完成。
pause