小学信息技术组 > 文章列表
批处理清除多用户系统垃圾(原) (浏览次数:1676)
发表于2007-3-3 14:06:00
学校新机房是xp系统。

上学期,我教每个学生都创建了各自的帐户和密码。登录系统必须选择各自的用户名并输入密码。这样,每个学生的“我的文档”各自独立,互不影响,学生个性化设置也得到了充分的体现。

当然,多用户系统也给教学带来了一点不方便。

前一阵子,熊猫烧香肆虐,垃圾软件也到处飞。我发现,这些木马、病毒、流氓软件大都是利用下面两个文件夹做跳板(以系统在C盘、当前用户为“user1”为例):

C:\Documents and Settings\user1\Local Settings\Temp (这个是系统临时文件夹)
C:\Documents and Settings\user1\Local Settings\Temporary Internet Files(这个是IE临时文件夹)

这两个文件夹都是存放临时文件,一般里面的文件或文件夹都可以清除。

由于系统原因,这里的文件或文件夹没有及时清理,垃圾越积越多。
经常还遇到这样的情况,杀毒软件报警:发现病毒,在某某文件夹。一看,这个病毒文件还在另一个用户的临时文件夹。

小技巧:
1、清除当前用户的TEMP临时文件:开始→运行→输入“%temp%”→回车,一下子就打开当前用户的临时文件夹。然后你可以全选,然后删除。
2、清除当前用户的IE临时文件:IE→“工具”菜单→“Internet选项”→“常规”标签→“删除文件...”。

但是,要知道,我每台电脑里都有十几个用户呢。如何快捷地清除其他用户的临时文件呢?
删除文件用DEL就行。
关键是如何得到当前系统里的用户。

终于,让我解决了。

@REM 是我的解释。可以删除。


@ECHO OFF

SET DS=C:\Docume~1
@REM 其实是C:\Documents and Settings\
@REM 如果你的系统在 D 盘,上面就要改成 D:...
@REM 把这个路径设置成变量,也为了方便下面再次引用。

DIR /AD /B %DS% > %DS%\DIRLIST.TXT
@REM 把所有用户名列入 DIRLIST.TXT 文件中。
@REM 其实就是列出 C:\Documents and Settings\ 路径下的文件夹的名字。
@REM /AD 参数:只列出文件夹; /B 参数:简洁格式,只列出文件夹名,不显示大小、日期等属性。

FOR /F %%i IN (%DS%\DIRLIST.TXT) DO ATTRIB -S -H -R /S /D %DS%\%%i\LocalS~1\Temp\
@REM 循环设置系统临时文件夹内的文件属性为非系统(-S)、非隐藏(-H)、非只读(-R)。
@REM FOR /F %%i IN (%DS%\DIRLIST.TXT) DO ... 用刚才得到 DIRLIST.TXT 文件里的文件夹(即用户名)作循环,I 为循环变量。

FOR /F %%i IN (%DS%\DIRLIST.TXT) DO DEL /F /S /Q %DS%\%%i\LocalS~1\Temp\
@REM 循环同上。不过这次是循环强制删除临时文件夹下(包括子文件夹下)垃圾文件。
@REM DEL 默认不删除隐藏文件。所以前面才多一步设置文件属性为非系统、非隐藏、非只读。

FOR /F %%i IN (%DS%\DIRLIST.TXT) DO ATTRIB -S -H -R /S /D %DS%\%%i\LocalS~1\Tempor~1\
@REM 循环清除 IE 临时文件夹内的文件属性。

FOR /F %%i IN (%DS%\DIRLIST.TXT) DO DEL /F /S /Q %DS%\%%i\LocalS~1\Tempor~1\
@REM 循环强制删除 IE 临时文件夹内的文件。

PAUSE
@REM 暂停。按任意键退出。



楼主
Re:批处理清除多用户系统垃圾(原)
发表于2009-7-18 17:28:00
为了谢谢楼主无私的分享,我特意注册了这个用户,不过这注册还真费事,要回答一个什么问题,我跳了两三个才回答正确
其次,对这个批处理我测试后没有问题,但我在此基础上做了几点完善,也和楼主一起分享一下:
1.我把楼主的删除命令改为rd /s /q & md,这样不但删除了垃圾文件,也删除了多余的空文件夹.
2.rd /s命令可以不管文件夹属性是否隐藏,因此也可以省略设定文件夹属性的语句.
3.批处理中输出的用户目录也没有用,所以我最后增加了删除目录文件的语句.
4.最后再加上一些清除系统垃圾文件的语句,这样就更完美了.
我修改后的批处理如下:
@echo off
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
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 %systemdrive%\recycler\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\Temp & md %windir%\Temp
set ds=%systemdrive%\Docume~1
dir /ad /b %ds% > %ds%\dirlist.txt
for /f %%i in (%ds%\dirlist.txt) do if exist %ds%\%%i\cookies del /f /q %ds%\%%i\cookies\*.*
for /f %%i in (%ds%\dirlist.txt) do if exist %ds%\%%i\recent del /f /q %ds%\%%i\recent\*.*
for /f %%i in (%ds%\dirlist.txt) do if exist %ds%\%%i\LocalS~1\Temp rd /s /q %ds%\%%i\LocalS~1\Temp & md %ds%\%%i\LocalS~1\Temp
for /f %%i in (%ds%\dirlist.txt) do if exist %ds%\%%i\LocalS~1\Tempor~1 rd /s /q %ds%\%%i\LocalS~1\Tempor~1 & md "%ds%\%%i\LocalS~1\Temporary Internet Files"
del %ds%\dirlist.txt
echo. & pause,
1

您必须登录后才能进行回复或者发起新的主题