中国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
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: