中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-09 22:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 自动删除文件和文件夹 查看 2,126 回复 8
楼 主 自动删除文件和文件夹 发表于 2006-12-25 12:38 ·  中国 上海 浦东新区 电信
初级用户
积分 169
发帖 17
注册 2004-11-05 00:00
21年会员
UID 33346
性别 男
状态 离线
我E盘下有4个文件夹,保护这4个文件夹不被删除
可否建个批处理
自动删除多余的文件和文件夹
2 发表于 2006-12-25 22:57 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  以下为演示代码,必须放在E盘之外的分区运行:

@echo off
for /f "delims=" %%i in ('dir /a /b e:\') do (
set flag=
for /f "delims=" %%j in (test.txt) do if /i "%%i"=="%%j" set flag=1
if not defined flag echo "e:\%%i"
)
pause

  test.txt必须放在E盘之外的分区,里面的内容为不带路径的文件夹名,一行一条记录,比如:

文件夹1
文件夹2
文件夹3
文件夹4

  如果对以上演示代码的效果很满意,可以用下面的代码来删除E盘下指定文件夹外的其他所有文件或文件夹:

@echo off
for /f "delims=" %%i in ('dir /a /b e:\') do (
set flag=
for /f "delims=" %%j in (test.txt) do if /i "%%i"=="%%j" set flag=1
if not defined flag del /a /f "e:\%%i" 2>nul||rd /s "e:\%%i" 2>nul
)
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ccwan +5 2006-12-25 23:10
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-12-25 23:12 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
尽管是namem版主的代码,偶也是试过成功才加分的。
呵呵……
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
4 发表于 2006-12-25 23:57 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
::------------winxp sp2 disk clear--------------
::::::::::::::::::::注要配置::::::::::::::::::::
::你需要清理的分区是几个=3
::都是那几个分区=D:\;E:\;F:\
::----------------------------------------------
@echo off
:dc
cls
title=winxp sp2 disk clear
SETLOCAL ENABLEDELAYEDEXPANSION
SET list=C:\%random%.dat
if /i "%1" == "list" cls&goto parlist
for /f "tokens=2 delims==" %%i in ('findstr /B "::你需要清理的分区是几个" %0') do SET show=%%i
for /f "tokens=2,3,4,5,6 delims==;" %%i in ('findstr /B "::都是那几个分区" %0') do SET par1=%%i&SET par2=%%j&SET par3=%%k&SET par4=%%l&SET par5=%%m&SET par6=%%n
SET par|find "par%show%"&&goto list
echo config error...
pause>nul
goto dcend

:list
echo.>%list%
for /f "tokens=2 delims=>" %%i in ('findstr /B "::>" %0') do echo %%i>>%list%
goto partition

:parlist
set /p disk=请输入你需要建立列表的分区盘符(例:"C:" 不包括"\")
ECHO %disk%|findstr /b /e /i "C: D: E: F: G: H: I: J: K: L: M: N:"||CLS&&ECHO 输入错误! &&goto parlist
echo.>%list%
for /f "delims=" %%i in ('dir /a:d /b %disk%\') do ECHO ::^>%disk%\%%i>>%list%
cls
set /p ch=%disk%根目录列表已完成,需要添加至本脚本内吗?(Y/N):
if /i "%ch%" == "y" copy %0+"%list%" %0
notepad.exe %list%&goto dcend

:partition
SET par=!par%show%!
SET /A show=%show%-1
for /f "delims=" %%i in ('dir /A:D /B %par%') do findstr /B /E /C:"%par%\%%i" %list% >nul || rd /s /q "%par%%%i"
del /f /q /a %par%*.*
if %show%==0 goto dcend
goto partition

:dcend
del /f /q %list%
pause


:::::::::::::::::排除目录设置:::::::::::::::::
::>D:\LanGame
::>D:\My Virtual Machines
::>D:\RECYCLER
::>D:\System Volume Information
::>E:\DATA
::>E:\div
::>E:\DOW
::>E:\ghost
::>E:\ISO
::>E:\moliyo
::>E:\RECYCLER
::>E:\SOFTWARE
::>E:\System Volume Information
::>E:\魔兽世界
::>F:\DOW
::>F:\Downloads
::>F:\L
::>F:\My Virtual Machines
::>F:\RECYCLER
::>F:\System Volume Information
::>F:\测试 一下
5 发表于 2006-12-26 00:12 ·  中国 河南 郑州 电信
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线

@echo off
::如果有多个路径,或者排除多个文件夹:::
::或者排除多个文件,请手工进行设置:::::
::findstr 后面可以跟多个/c:""参数::::::
::如:/c:"game" /c:"qq" /c:"net" ::::::
::中间使用空格间隔:::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::
:: code by zzlike 2006-12-11 CMD@XP::::
::::::::删除文件夹:::::::::::::::::::::
for /f "delims=" %%i in ('dir /b /ad "d:\" "e:\" ^|findstr /i /v /b /e /c:"netgame" /c:"ghost" /c:"游戏菜单"') do attrib -s -h -r -a /s /d "d:\%%i" && rd /s /q "d:\%%i"
::::::::删除文件:::::::::::::::::::::::
for /f "delims=" %%i in ('dir /b /a-d "d:\" "e:\" ^|findstr /i /v /b /e /c:"排除删除文件夹.bat" /c:"新建 文本文档.txt"') do del /a /f /q "d:\%%i"
bat c c++
6 发表于 2006-12-26 10:49 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
晕~~
本人在用VBS编写时不慎将E盘下所有文件删除,损失惨重! :(
好在代码算写出来了,不过没胆量把它贴上来了 :)
在此提醒各位“删除”命令慎用!
7 删除文件夹问题,删除当前日期前几天的文件夹? 发表于 2006-12-28 10:05 ·  中国 广东 东莞 电信
新手上路
积分 6
发帖 2
注册 2006-12-25 14:54
19年会员
UID 74538
性别 男
状态 离线
例如一文件夹内有以日期为名的文件夹多个,想保留当前日期前7天的文件夹?
用批处理该怎么编写?
8 发表于 2007-04-18 04:42 ·  中国 浙江 杭州 萧山区 电信
新手上路
积分 10
发帖 5
注册 2006-12-27 22:39
19年会员
UID 74739
性别 男
状态 离线
是要小心,不过不错的代码,谢谢。
9 看不懂 发表于 2008-09-25 16:01 ·  中国 广东 广州 白云区 电信
新手上路
积分 3
发帖 2
注册 2008-09-25 11:00
17年会员
UID 126571
性别 男
状态 离线
但也顶一下,
论坛跳转: