任意文件夹内都可以强制删除目录下的所有文件夹,保留特定后缀文件
第1个回答 2018-06-13
@echo off & title 删除当前目录中指定后缀名以外的文件 By 依梦琴瑶
::设置当前目录中要保留的文件后缀
set Ext=zip,txt,php
for %%a in (*) do (
set "Skip="
for %%b in (%Ext%) do if /i "%%~xa"==".%%~b" set "Skip=1"
if not defined Skip del /a/f/q "%%~a"
)
for /r /d %%a in (*) do del /a/f/q/s "%%~a\*"
pause追问
::设置当前目录中要保留的文件后缀
set Ext=zip,txt,php
for %%a in (*) do (
set "Skip="
for %%b in (%Ext%) do if /i "%%~xa"==".%%~b" set "Skip=1"
if not defined Skip del /a/f/q "%%~a"
)
for /r /d %%a in (*) do del /a/f/q/s "%%~a\*"
pause追问
需要把所有文件夹全部删除,
for /r /d %%a in (*) do del /a/f/q/s "%%~a\*"
pause
这段代码好像是执行了子目录所有文件删除但保留了文件夹
您问题描述中没有提及到删除文件夹,只是提到删除文件夹包含子文件夹里面的所有文件,所以我没有写删除文件夹的代码。
如果需要删除文件夹,那么请把
for /r /d %%a in (*) do del /a/f/q/s "%%~a\*"
改成
for /d %%a in (*) do rd /s/q "%%~a"
第2个回答 2020-11-09
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的多个文件夹放一起双击运行
@echo off
rem 删除当前目录下的多个子文件夹
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /ad-h/b') do rd /s /q "%%a\"
echo;%#% +%$%%$%/%@% %z%
pause
exit
@echo off
rem 删除当前目录下的多个子文件夹
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /ad-h/b') do rd /s /q "%%a\"
echo;%#% +%$%%$%/%@% %z%
pause
exit