如何用批处理批量删除含有指定字符的多个文件夹?

如在下图中,只保留rj-kebiao,而删除其他的文件夹,应怎么写批处理?现知rd/s/q07\a-kebiao可删除文件夹。能否用不很复杂的批处理实现下面这样的效果:在... 如在下图中,只保留rj-kebiao,而删除其他的文件夹,应怎么写批处理?
现知 rd /s /q 07\a-kebiao可删除文件夹。
能否用不很复杂的批处理实现下面这样的效果:
在6下查找所有不等于rj-kebiao的文件夹,并删除。
再强调一个问题:要保留的文件的位置不能动,里面包括外面都是相互链接的网页文件。
展开
 我来答
ch_w_j
2010-10-11 · TA获得超过535个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:265万
展开全部
将以下内容保存为bat文件放在与“6”相同的目录下:
@echo on
cd 6
for /l %%i in (7,1,8) do (cd 0%%i&&ren rj-kebiao rj-kebiao0%%i&&move

rj-kebiao0%%i \&&cd..)
for /r %k in (.) do (cd %k&&del /q *.*)
for /l %%j in (1,1,8) do rd /s /q 0%%j
pause
点击运行即可,功能为:将07和08两个文件夹下的两个rj-kebiao重命名为rj-kebiao07和rj-kebiao08保留在根目录下,删除6下的所有其他目录。
----------------------------------------------------------------
请楼主看清功能,确认无误后再执行,以免造成文件丢失。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whatesit
2010-10-13 · TA获得超过141个赞
知道答主
回答量:39
采纳率:0%
帮助的人:59.2万
展开全部
用bat写代码就是很麻烦的事。
你把根文件夹拖到bat文件上运行即可。注意:测试时,请先备份根文件夹。代码如下:

@echo off
setlocal enabledelayedexpansion

set tempFile=%0\..\my.TempFile.txt
set tempFile2=%0\..\my.TempFile2.txt
set tempFile3=%0\..\my.TempFile3.txt
set save=rj-kebiao
if "%~1"=="" (
set /p MyFolder=请输入文件夹路径:
) else set MyFolder=%~1
if not exist "%MyFolder%" pause&exit
cd /d "%MyFolder%"
echo %MyFolder%>%tempFile%
dir /s /ad /b | find /V "%save%">%tempFile2%
for /f "delims=" %%i in (%tempFile2%) do (
cd "%%i"
del /q *
)
cd "%MyFolder%"
dir /s /ad /b | findstr "%save%">>%tempFile%

for /f "delims=" %%i in ('dir /s /ad /b') do (
if exist "%%i" (
findstr /C:"%%i" %tempFile%>%tempFile3%
set isFind=false
for /f "delims=" %%j in (%tempFile3%) do (
set isFind=true
)
if !isFind!==false (
rd /s /q "%%i"
)
)
)
del %tempFile%
del %tempFile2%
del %tempFile3%
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ztyxbb001
2010-10-08 · TA获得超过242个赞
知道小有建树答主
回答量:391
采纳率:100%
帮助的人:292万
展开全部
不知这样的思路行不行,把你留得文件夹复制到6的根文件夹,在把6整个删掉。代码:
@echo off
copy 6\07\rj-kebiao rj-kebiao
rd/s/q 6
一定要把此文件放到6的根文件夹里
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu_jun0204
2010-10-16 · TA获得超过558个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:118万
展开全部
@echo off
set /p del=设定你要搜索的上级目录盘:

dir %del%\* /b /a:d>alld.txt

if exist alld.txt for /f "tokens=*" %%i in (alld.txt) do if not "%%i" == "rj-kebiao" echo %%i>>del.txt

if exist del.txt for /f "tokens=*" %%i in (del.txt) do rd /s /q "06\%%i"

if exist alld.txt del alld.txt
if exist del.txt del del.txt

pause

以上保存为bat文件,然后运行,因为不知道你的目录,请自己设定目录
如有疑问,请给我发消息!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式