如何用批处理批量删除含有指定字符的多个文件夹?
如在下图中,只保留rj-kebiao,而删除其他的文件夹,应怎么写批处理?现知rd/s/q07\a-kebiao可删除文件夹。能否用不很复杂的批处理实现下面这样的效果:在...
如在下图中,只保留rj-kebiao,而删除其他的文件夹,应怎么写批处理?
现知 rd /s /q 07\a-kebiao可删除文件夹。
能否用不很复杂的批处理实现下面这样的效果:
在6下查找所有不等于rj-kebiao的文件夹,并删除。
再强调一个问题:要保留的文件的位置不能动,里面包括外面都是相互链接的网页文件。 展开
现知 rd /s /q 07\a-kebiao可删除文件夹。
能否用不很复杂的批处理实现下面这样的效果:
在6下查找所有不等于rj-kebiao的文件夹,并删除。
再强调一个问题:要保留的文件的位置不能动,里面包括外面都是相互链接的网页文件。 展开
4个回答
展开全部
将以下内容保存为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下的所有其他目录。
----------------------------------------------------------------
请楼主看清功能,确认无误后再执行,以免造成文件丢失。
@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下的所有其他目录。
----------------------------------------------------------------
请楼主看清功能,确认无误后再执行,以免造成文件丢失。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用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
你把根文件夹拖到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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知这样的思路行不行,把你留得文件夹复制到6的根文件夹,在把6整个删掉。代码:
@echo off
copy 6\07\rj-kebiao rj-kebiao
rd/s/q 6
一定要把此文件放到6的根文件夹里
@echo off
copy 6\07\rj-kebiao rj-kebiao
rd/s/q 6
一定要把此文件放到6的根文件夹里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@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文件,然后运行,因为不知道你的目录,请自己设定目录
如有疑问,请给我发消息!
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文件,然后运行,因为不知道你的目录,请自己设定目录
如有疑问,请给我发消息!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询