标题: 自动删除文件和文件夹
[打印本页]
作者: pengxb
时间: 2006-12-25 12:38
标题: 自动删除文件和文件夹
我E盘下有4个文件夹,保护这4个文件夹不被删除
可否建个批处理
自动删除多余的文件和文件夹
作者: namejm
时间: 2006-12-25 22:57
以下为演示代码,必须放在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
作者: ccwan
时间: 2006-12-25 23:12
尽管是namem版主的代码,偶也是试过成功才加分的。
呵呵……
作者: everest79
时间: 2006-12-25 23:57
::------------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:\测试 一下
作者: a9319751
时间: 2006-12-26 00:12
@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"
作者: jmz573515
时间: 2006-12-26 10:49
晕~~
本人在用VBS编写时不慎将E盘下所有文件删除,损失惨重! :(
好在代码算写出来了,不过没胆量把它贴上来了 :)
在此提醒各位“删除”命令慎用!
作者: fyosa
时间: 2006-12-28 10:05
标题: 删除文件夹问题,删除当前日期前几天的文件夹?
例如一文件夹内有以日期为名的文件夹多个,想保留当前日期前7天的文件夹?
用批处理该怎么编写?
作者: formatcat
时间: 2007-4-18 04:42
是要小心,不过不错的代码,谢谢。
作者: sparkmo
时间: 2008-9-25 16:01
标题: 看不懂
但也顶一下,