Board logo

标题: 计算机垃圾清理助手 [打印本页]

作者: Mekinery     时间: 2007-1-20 00:34    标题: 计算机垃圾清理助手

在论坛谁花了些时间看了些贴,搜索了些资料,于是开始写这个代码,嘿嘿刚学不久,好多都不懂,没有办法,有些都是借鉴论坛能人代码加以模仿其功能,在测试过程中也碰到不少难题(对于我这个菜鸟来说),所以代码有点冗余和bug.还有些垃圾文件不能清除的问题:如:
%userprofile%"\Local Settings\History\ 下的所有文件以及回收站里面的文件(试过可以但是桌面回收站图标却还是有文件,打开是空的!所以没有把这段代码加上去),希望大家能够解决这个问题,thank!
    所谓编程之道就是以最精简的代码实现强大的功能,这个目标现在对于我来说是蛮遥远......
希望论坛能人能人能够指正其中不足和错误之处,当然数据库可能有错误和不足之处,也希望大家矫正和添加,谢谢!!!
由于我的IE可能有问题所以代码段只能这么写,如果可以的话请斑竹改过来,谢谢.

code:


@echo off
@color 2e
@title  计算机清洁助手 2007 v1.0  BY Celinkot
@cls
@echo ================================================================================
@echo {※※※(⊙﹏⊙)※※※(⊙﹏⊙)※※※H(⊙﹏⊙)N※※※(⊙﹏⊙)※※※(⊙﹏⊙)※※※}
@echo ================================================================================
@echo ╔+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++╗
@echo ┆                   本软件由“思灵科特”制作,使用前请杀毒!                  ┆
@echo ┆                                                                           ┆
@echo ┆                            如不满意请及时删除.                            ┆
@echo ┆                                                                           ┆
@echo ┆                              ♂Celinkot♂                                 ┆
@echo ┆                                                                           ┆
@echo ┆                              QQ:523963001                                 ┆
@echo ┆                                                                           ┆
@echo ┆                              @:huseyzhncn                                 ┆
@echo ╚+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++╝
@echo.
@echo §﹌﹌﹌﹌﹌﹌﹌ Hope everyone have a happy life in the world ! ﹌﹌﹌﹌﹌﹌﹌§
@echo.
@echo                  此软件暂实用于Windows XP,其他系统请自行测试!
@echo.
@echo            进行垃圾清理会占用一定的内存和CPU,CPU使用率可能达到100%
@echo.
@echo                         请关闭一些正在使用的程序!
@echo.
@echo ******************************* 请按任意键开始! ******************************
@echo.
@pause>nul

@if not exist slkt.ini goto cw
@if not exist %systemroot%\system32\slkt.ini goto fz
@:fz
@copy slkt.ini %systemroot%\system32\
@goto xuanze

@:cw
@cls
@echo 错误!!!数据库文件 slkt.ini 没有找到!
@pause
@goto kl

@:xuanze
@cls
@set /p slkt=                         继续/退出 ( Y / N )
@if  %slkt%==Y   goto kaishi
@if  %slkt%==N   goto jieshu
@echo                 错误!!! 请注意大小写,键值是否存在......&pause
@goto xuanze
@cls

@:kaishi
@cls
@color 3A
@echo          ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
@echo          ┃                           操作说明                           ┃
@echo          ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
@echo          ┃                   全盘清理请按: AP                           ┃
@echo          ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
@echo          ┃      清理C盘请按: C                 清理D盘请按: D           ┃
@echo          ┃      清理E盘请按: E                 清理F盘请按: F           ┃
@echo          ┃      清理G盘请按: G                 清理H盘请按: H           ┃
@echo          ┃      清理I盘请按: I                 清理J盘请按: J           ┃
@echo          ┃      清理K盘请按: K                 清理L盘请按: L           ┃
@echo          ┃      清理M盘请按: M                 清理N盘请按: N           ┃
@echo          ┃      清理O盘请按: O                 清理P盘请按: P           ┃
@echo          ┃      清理Q盘请按: Q                 清理R盘请按: R           ┃
@echo          ┃      清理S盘请按: S                 清理T盘请按: T           ┃
@echo          ┃      清理U盘请按: U                 清理V盘请按: V           ┃
@echo          ┃      清理W盘请按: W                 清理X盘请按: X           ┃
@echo          ┃      清理Y盘请按: Y                 清理Z盘请按: Z           ┃
@echo          ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
@echo          ┃                       退出请按: QT                           ┃
@echo          ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
@echo          ┃                  中途终止程序请按: Ctrl+C                    ┃
@echo          ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
@set /p clkt= [请输入您的选择:]
@if "%clkt%"=="C"   goto qc
@if "%clkt%"=="D"   goto qd
@if "%clkt%"=="E"   goto qe
@if "%clkt%"=="F"   goto qf
@if "%clkt%"=="G"   goto qg
@if "%clkt%"=="H"   goto qh
@if "%clkt%"=="I"   goto qi
@if "%clkt%"=="J"   goto qj
@if "%clkt%"=="K"   goto qk
@if "%clkt%"=="L"   goto ql
@if "%clkt%"=="M"   goto qm
@if "%clkt%"=="N"   goto qn
@if "%clkt%"=="O"   goto qo
@if "%clkt%"=="P"   goto qp
@if "%clkt%"=="Q"   goto qq
@if "%clkt%"=="R"   goto qr
@if "%clkt%"=="S"   goto qs
@if "%clkt%"=="T"   goto qt
@if "%clkt%"=="U"   goto qu
@if "%clkt%"=="V"   goto qv
@if "%clkt%"=="W"   goto qw
@if "%clkt%"=="X"   goto qx
@if "%clkt%"=="Y"   goto qy
@if "%clkt%"=="Z"   goto qz
@if "%clkt%"=="AP"  goto ap
@if "%clkt%"=="QT"  goto end
@echo                 错误!!! 请注意大小写,键值是否存在...&pause
@cls
@goto kaishi

@:qc
@goto clkt4

@:qd
@goto clkt4

@:qe
@goto clkt4

@:qf
@goto clkt4

@:qg
@goto clkt4

@:qh
@goto clkt4

@:qi
@goto clkt4

@:qj
@goto clkt4

@:qk
@goto clkt4

@:ql
@goto clkt4

@:qm
@goto clkt4

@:qn
@goto clkt4

@:qo
@goto clkt4

@:qp
@goto clkt4

@:qq
@goto clkt4

@:qr
@goto clkt4

@:qs
@goto clkt4

@:qt
@goto clkt4

@:qu
@goto clkt4

@:qv
@goto clkt4

@:qw
@goto clkt4

@:qx
@goto clkt4

@:qy
@goto clkt4

@:qz
@goto clkt4

@:clkt1
@cls
@%clkt%:
@cd /
@echo 您选择的是%clkt%盘
@if /i %clkt%: equ %systemdrive% goto clkt2
@goto clkt3

@:clkt2
@echo 此盘是系统盘&pause
@goto clkt9

@:clkt3
@echo 此盘不是系统盘&pause
@goto clkt6

@:clkt4
@if /i exist %clkt%:\nul goto :clkt1
@echo 此不盘存在&pause
@goto kaishi

@:clkt9
@del /f /s /q  "%userprofile%\Local Settings\Temp\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\recent\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\Local Settings\Tempor~1\*.*" 2>nul 3>nul
@if not exist  %SystemRoot%\Minidump\NUL del /f /q /s %SystemRoot%\Minidump\*.* 2>nul 3>nul
@del /f /s /q  "%allusersprofile%\Documents\DrWatson\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\Application Data\Microsoft\Office\Recent\*.lnk" 2>nul 3>nul
@HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /va /f>nul 2>nul
@taskkill /im explorer.exe /f > nul
@del /s /f /a /q  "%userprofile%"\Local Settings\History\*.*"  2>nul 3>nul
@del /f /s /q  "%userprofile%\cookies\*.*" 2>nul 3>nul
@start "" explorer.exe

@:clkt6
@cls
@%clkt%:
@cd /
@echo 正在搜索%clkt%盘垃圾文件,请等待……
@for /f %%i in (%systemroot%\system32\slkt.ini) do del /s /f /q %%i 2>nul
@echo 完毕!!!
@echo. & pause
@cls
@goto kaishi

@:clkt5
@del /f /s /q  "%userprofile%\Local Settings\Temp\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\recent\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\Local Settings\Tempor~1\*.*" 2>nul 3>nul
@if not exist  %SystemRoot%\Minidump\NUL del /f /q /s %SystemRoot%\Minidump\*.* 2>nul 3>nul
@del /f /s /q  "%allusersprofile%\Documents\DrWatson\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\Application Data\Microsoft\Office\Recent\*.lnk" 2>nul 3>nul
@HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /va /f>nul 2>nul
@taskkill /im explorer.exe /f > nul
@del /s /f /a /q  "%userprofile%"\Local Settings\History\*.*"  2>nul 3>nul
@del /f /s /q  "%userprofile%\cookies\*.*" 2>nul 3>nul
@start "" explorer.exe
goto :eof

@:clkt7
@cls
@%clkts%:
@cd /
@echo 正在搜索%clkts%盘垃圾文件,请等待……
@for /f %%i in (%systemroot%\system32\slkt.ini) do del /s /f /q %%i 2>nul
@echo 完毕!!!
@echo. & pause
@cls
@goto eof

@:ap
@for  %%p in (c d e f g h i j k l m n o p q r s t u v w x y z) do set clkts=%%p&call :clkt8
@echo 清理完成!!!
@echo. & pause
@goto kaishi

@:sjk
@if /i %clkts%: equ %systemdrive% call :clkt5
@goto :clkt7

@:clkt8
@if /i exist %clkts%:\nul goto sjk
@echo 此不盘存在
@goto :eof

@:end
@exist

@:kl
@del %0

[ Last edited by Mekinery on 2007-1-19 at 12:10 PM ]
附件 1: clkt.rar (2007-1-20 01:09, 2.4 K, 下载附件所需积分 1点 ,下载次数: 184)

作者: Pando     时间: 2007-1-20 00:58
纯支持楼主,但还是感觉小题大做了

其实只有系统盘有必要清理垃圾:
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"

其他盘根本没必要的哈!

[ Last edited by Pando on 2007-1-20 at 01:15 AM ]
作者: 9527     时间: 2007-1-20 01:15
唉,纯体力活儿.......
作者: Mekinery     时间: 2007-1-20 01:32
也不完全这么说啊,除了系统盘外,其他软件生成的垃圾就有点难说了吧
这个虽然有点吓人,但是功能应该不会太差吧?
里面还有改进的地方,凭我现在的能力还 不行,还请大家指正并写出精简的代码吧,在此谢谢了!
作者: electronixtar     时间: 2007-1-20 01:34
Ctrl+V出来滴
作者: Mekinery     时间: 2007-1-20 01:42
electronixtar说的差不多吧,的确是类似,其实每个人所学的东西都是“Ctrl+V出来滴”只是表现形式不同而已吧?
      因为我觉的每个人都是从不会到会,精通了而加以转变灵活运用而已
真正凭借自己想出“不存在”的东西太少,毕竟像爱因斯坦这样的人太少了......
----个人观点
大家觉的是不是呢?

[ Last edited by Mekinery on 2007-1-19 at 12:45 PM ]
作者: zhct     时间: 2007-1-20 02:41
同意楼上观点!
不学习怎么进步?临摹是学习的捷径!!
作者: electronixtar     时间: 2007-1-20 02:43
还是支持下,呵呵~~~
作者: zch1366     时间: 2007-1-20 12:26
不错,好东西!
作者: hsting     时间: 2007-1-23 08:02
不错,值得学习
作者: htysm     时间: 2007-1-25 05:46
这个代码写得就象是个八旬的老太婆,真佩服楼主的精神。
作者: cxq5173     时间: 2007-3-18 08:14
支持了
看不懂
作者: Jneny     时间: 2007-3-18 08:26
精神值得 严重支持~~
作者: zzttff     时间: 2007-3-19 11:04
谢楼主与大家共享
作者: zykoo     时间: 2007-4-6 06:22
学习一下,多谢分享
作者: airosp     时间: 2007-4-6 06:27
楼主纯体力活……那些代码,大部分可以改为自动化的……
作者: flyinspace     时间: 2007-4-6 06:36
我寒。。
不值得为这个写精简的代码。

真的是纯体力活。。

至于大小写的问题。

楼主,给你一个参数。

if /i
这个可以忽略大小写的。
作者: flyinspace     时间: 2007-4-6 06:42
更搞不懂你加那么多@做什么。

第一句话就关闭了回显了。

累不累?

@del /f /s /q  "%userprofile%\Local Settings\Temp\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\recent\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\Local Settings\Tempor~1\*.*" 2>nul 3>nul
@if not exist  %SystemRoot%\Minidump\NUL del /f /q /s %SystemRoot%\Minidump\*.* 2>nul 3>nul
@del /f /s /q  "%allusersprofile%\Documents\DrWatson\*.*" 2>nul 3>nul
@del /f /s /q  "%userprofile%\Application Data\Microsoft\Office\Recent\*.lnk" 2>nul 3>nul
@HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /va /f>nul 2>nul
@taskkill /im explorer.exe /f > nul
@del /s /f /a /q  "%userprofile%"\Local Settings\History\*.*"  2>nul 3>nul
@del /f /s /q  "%userprofile%\cookies\*.*" 2>nul 3>nul
@start "" explorer.exe

这里?如果有人把一些设置更改了怎么办?

结果是:你会误删所有的文件。

1,不安全的命令。
2,写了许多废话。
3,清理的东西不够简洁实用。
作者: airosp     时间: 2007-4-7 11:15
另外那么多nul完全是多此一举,会让用户看不到自己删除了什么东西~
作者: qingfushuan     时间: 2007-4-7 11:28    标题: 插一句

浓缩的肯定是精华,但是PF  LZ的ctrl+Vde 精神,但仅仅PF
作者: piaoye0605     时间: 2007-4-7 21:11
对楼主的耐心表示敬佩!!!支持下
作者: Mxark     时间: 2007-4-8 03:09
最近没有时间,等有时间了优化下
上传个更好好的
呵呵~~
作者: shikx2008     时间: 2007-4-8 05:24
厉害我做不到 还在学习呢?顶
作者: applehdh     时间: 2007-4-8 09:14
呵呵,谢谢了
很好的思路,Winodws优化大师下岗了
作者: 9tiansj     时间: 2007-4-28 10:20
不错,值得学习
作者: yxzpt     时间: 2007-4-28 23:09
主要还是系统盘
作者: zrw1846     时间: 2007-4-28 23:18
学习
作者: gdygood     时间: 2007-7-12 23:54
学习了,有学才有进步嘛
作者: luowei14     时间: 2007-7-13 11:35
学习了。。有点累赘。。清理垃圾完全可以自动化
作者: qingfushuan     时间: 2007-7-13 12:17
临摹是学习的第一步,变化才是关键,PF  LZ的精神,我一直都是从每个收集的cmd中

Ctrl+V一点点,就是我完成的cmd了,再支持了
作者: qpmgljf     时间: 2007-7-14 10:25
严重支持,我自己也在别人的基础上加强了一下,请各位指点。。
@echo off
SET TT=一键清理系统垃圾文件
mode con: cols=70 lines=20
color 1f
TITLE %TT%------剑锋制作︻$▅▆▇◤
echo.
echo        请按任意键开始清理系统一般垃圾文件!
pause>nul
echo.
echo 正在清理系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo.
echo.
echo       清理一般系统垃圾完成!
echo.
echo.
:xuanze
echo.
SET Choice=
SET /P Choice=    要退出程序按q,要继续加强清理按c:
IF NOT '%Choice%'=='' SET Choice1=%Choice:~0,1%
IF /I '%Choice%'=='q' goto end
IF /I '%Choice%'=='c' goto next
cls
goto xuanze
:next
cls
echo.
echo.
echo    提示:加强清理用于清理安装系统后的残留垃圾
echo          建议在备份系统前使用加强清理!
echo          清理之前请将补丁安装完毕!
echo.
echo          请按任意键加强清理,想退出可直接关闭本窗口!
pause>nul
echo.
rd /s /q "c:\program files\messenger"
del /f /s /q "c:\program files\msn gaming zone\*.*"
rd /s /q "c:\program files\msn gaming zone"
del /f /s /q "c:\Program Files\InstallShield Installation Information\*.*"
for /f "delims=" %%a in ('dir /ad %windir%\$NtUninstallKB* /b') do rd /s /q %windir%\%%a
del /f /s /q %windir%\$hf_mig$\*.*
del /f /s /q "%windir%\RegisteredPakages\*.*"
del /f /s /q "%windir%\Downloaded Installations\*.*"
del /f /s /q "%windir%\web\wallpaper\肖像*.*"
:end
echo.
echo.
ECHO        ╭══════════════╮
ECHO    ╭═══┤       ★劍鋒製作★        ├═══╮
ECHO    ║   ╰══════════════╯   ║
ECHO    ║┏━┳━┳━┳━┓             ║
ECHO    ║┣┳┻┳┻┳┻┳┫   QQ:61813046           ║
ECHO    ║┣┻┳╋━╋┳┻┫              ║
ECHO    ║┣┳┻┫卐┣┻┳┫ Email:qpmgljf@163.com    ║
ECHO    ║┣┻┳┻┳┻┳┻┫                ║
ECHO    ║┣┳┻┳┻┳┻┳┫                          ║
ECHO    ║┗┻━┻━┻━┻┛             ║
ECHO    ║                      ║
ECHO    ║ ▉▉▉▉▉▉▉▉100%%▉▉▉▉▉▉▉▉▉   ║
ECHO    ╰══════════════════════╯
echo.
echo                  清理完毕!
echo.
echo                 请按任意键结束本程序,谢谢您的使用!
pause>nul
作者: bj1912     时间: 2007-8-5 12:54
支持一下
就是太多了`~~
作者: ahllahll     时间: 2007-8-5 22:16
不太懂  直接调用WINDOWS的磁盘LAJI清理工具会好多吧
作者: tianya921     时间: 2007-8-6 13:24
看看了,就是怎么还要个文件了
作者: hy55310     时间: 2007-8-8 22:53
同意楼上观点!
不学习怎么进步?临摹是学习的捷径!!精神值得 支持
作者: sxs88     时间: 2007-8-10 22:22
太烦琐  还是用鼠标到文件夹下删除吧
作者: gebihanfei     时间: 2007-9-26 08:12
我要试试看
作者: dosmania     时间: 2007-9-26 14:10
haha,N 惨``做苦力活还被人鄙视没技术含量,哈哈```唉
作者: xinhepc     时间: 2007-9-26 16:05
我不喜欢自己编这些清除的东西,我技术也没那么高~正如楼上所说,这么我的@, 而楼主又在开头加了@ ECHO OFF,我真搞不懂楼主知不知道@的作用是什么?还有那么多的>NUL,这样一来用户就真的看不到自己删除了什么垃圾文件了~~编清理系统的BAT想明白点就是删除无用文件,我觉得只要做到把无用文件删除就行了,搞得那么花,比做广告还烦~~还是直接DEL /Y /Q文件夹里的东西方便~~
作者: chinashuang     时间: 2007-10-17 23:55    标题: 学习一下,多谢分享

学习一下,多谢分享
作者: chinashuang     时间: 2007-10-17 23:55
学习一下,多谢分享
作者: yezhiyi1017     时间: 2007-10-29 18:01
支持,谢谢 !
作者: INeverAsk     时间: 2007-12-26 10:44
根本不象代码那样唬人,我试过连IE临时文件夹下的文件也清除不了
作者: nanhui112     时间: 2007-12-26 13:52
呵呵 , 向你的精神我学习拉 希望以后可以写出好的代码 ^_^
作者: yanxinyi     时间: 2007-12-26 21:02    标题: 呵呵

有意思啊。至少有在可以在电脑盲面前显耀一下。:P
作者: 530125484     时间: 2007-12-28 08:27
不错的东西好用
作者: gsong     时间: 2008-1-31 16:14
多谢分享
作者: annugu     时间: 2008-3-28 18:25
学习一下,多谢分享
作者: annugu     时间: 2008-3-28 18:33
bu cuo o
作者: xinsuo100     时间: 2008-5-2 18:51
谢谢楼主
收下了
作者: netkey     时间: 2008-5-17 17:52    标题: 好东东

好东东好东东
作者: 5872169     时间: 2008-5-24 10:46
楼主你累了吗,感觉你好累啊,写了这么长的代码,本来简单的几个命令就行,非写这么长干什么?
作者: guilinljd     时间: 2008-5-30 00:21    标题: 路过

看一下好东西
作者: guilinljd     时间: 2008-5-30 00:24    标题: 用过

真的很好
作者: 5872169     时间: 2008-5-30 09:03
楼主你累了吗,感觉你太累了,你太有时间了,就这几条命令,搞的这么复杂干什么?
作者: cad55     时间: 2008-5-30 09:43
楼主呀

像小学生作文.........
作者: 56505673     时间: 2008-9-5 22:34
学习一下,多谢分享
作者: doschinano1     时间: 2008-9-26 05:33    标题: 谢谢了

不过有点小错误
作者: haolongo     时间: 2008-9-26 14:36
学习一下,多谢分享
作者: zgdoslmtm     时间: 2008-9-26 17:21
搂住我顶你了。真是辛苦啊。
作者: cleft     时间: 2008-9-30 02:18
学习一下,多谢分享