中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 自动删除文件和文件夹 上一主题 | 下一主题
pengxb
初级用户




积分 169
发帖 17
注册 2004-11-5
状态 离线
『楼 主』:  自动删除文件和文件夹

我E盘下有4个文件夹,保护这4个文件夹不被删除 可否建个批处理 自动删除多余的文件和文件夹


2006-12-25 12:38
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 2 楼』:  

  以下为演示代码,必须放在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


   此帖被 +5 点积分      点击查看详情   
评分人:【 ccwan 分数: +5  时间:2006-12-25 23:10




尺有所短,寸有所长,学好CMD没商量。 考虑问题复杂化,解决问题简洁化。
2006-12-25 22:57
查看资料  发短消息  网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 3 楼』:  

尽管是namem版主的代码,偶也是试过成功才加分的。 呵呵……




三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2006-12-25 23:12
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 4 楼』:  

::------------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:\测试 一下


2006-12-25 23:57
查看资料  发短消息  网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 5 楼』:  

@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++
2006-12-26 00:12
查看资料  发送邮件  发短消息  网志  OICQ (5040366)  编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 6 楼』:  

晕~~ 本人在用VBS编写时不慎将E盘下所有文件删除,损失惨重! :( 好在代码算写出来了,不过没胆量把它贴上来了 :) 在此提醒各位“删除”命令慎用!


2006-12-26 10:49
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fyosa
新手上路





积分 6
发帖 2
注册 2006-12-25
状态 离线
『第 7 楼』:  删除文件夹问题,删除当前日期前几天的文件夹?

例如一文件夹内有以日期为名的文件夹多个,想保留当前日期前7天的文件夹? 用批处理该怎么编写?


2006-12-28 10:05
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
formatcat
新手上路





积分 10
发帖 5
注册 2006-12-27
状态 离线
『第 8 楼』:  

是要小心,不过不错的代码,谢谢。


2007-4-18 04:42
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
sparkmo
新手上路





积分 3
发帖 2
注册 2008-9-25
状态 离线
『第 9 楼』:  看不懂

但也顶一下,


2008-9-25 16:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: