(小标题:DOS快餐店(四))
磁盘清道夫——Del和Rd的故事
■掌柜的
★★★
√del和rd命令的使用
√利用脚本清空临时文件夹
经过连续三期的DOS大餐轮番上阵,相信各位客官已经有些饱了,那就由掌柜的我来给大
家讲个故事解解闷吧:del和rd(在Windows 98中曾经叫“deltree”)是一对兄弟,共同生
活在DOS小镇里。他们每天的工作很简单——拆除小镇里违章搭建或废弃的小区(目录),
并将小区内的建筑(目录中的文件)也逐一拆除(删除)。
有一天镇长交给他们一个任务:在小镇一个隐蔽的角落里,有人在“c:\windows”小区里
非法建造了一座叫“Trojan.exe”(***)的建筑,并且已经有一些游民入住其中,所以
无法将其拆除,两兄弟要做的就是在确保无人在建筑内的情况下将其拆除。
任务说明:Windows经常会受到一些恶意程序侵害,比如***程序就会侵入系统,偷走我
们的账号和资料。可是当发现***文件时,往往因为其正在运行而无法查杀,杀毒软件
也爱莫能助。所以必须将系统启动到“MS-DOS方式”(Windows 9x)或者“故障恢复控制
台”(Windows 2000/XP)下,然后在命令行下删除***文件。
del c:\windows\trojan.exe
小提示
当面对系统中的顽固文件无法删除时,也可参考上文,启动到“故障恢复控制台”后用
del命令将其删除。
本期配料:del/rd
适宜人群:没有DOS基础的初学者
del是如何完成文件删除工作的呢?让我们来回顾一下刚才的杀***过程中del命令的基
本使用。
目标1:删除c:\windows\trajon.exe
del c:\windows\trajon.exe
命令格式:del 要删除的文件路径(如要删除的文件在当前目录下,则无需输入完整路径
而只需给出文件名)
命令讲解:del后直接加上要删除的文件的详细路径,就能删除该文件,如果要删除的文
件在当前驱动器的当前目录下,则可省略详细路径而直接用“del 文件名”的方式删除
文件。
镇长显然对del的工作效率不太满意:“你拆除建筑的速度也太慢了,能不能同时几幢一
起拆?”和上一期中我们介绍的copy命令一样,del命令支持使用通配符的批量删除。
目标2:删除d:\movies目录下所有扩展名为RM的文件
del d:\movies\*.rm
(见图1 在进行批量删除时出现确认提示)
命令格式:del 要进行批量删除的文件目录\*.扩展名
命令讲解:通配符的使用说明可以参考上一期中本栏目的相关内容。我们还可以通过
“del d:\movies\a.*”和“del d:\movies\*.*”来删除d:\movie目录下所有文件主名
为a但扩展名不限的文件或者所有文件。
del在听取镇长意见改进了拆楼速度后,却发现拆错了几幢楼,这回又得挨骂了。有什么
方法可以在删除文件时再进行一次确认,以防止误操作带来的数据丢失?
目标3:删除d:\games\*.*,每个文件在被删除时都需要确认
del /p d:\games\*.*
命令格式:del /p 要进行批量删除的目录及文件名
命令讲解:在使用了这个参数后,当文件在删除前便会提示“文件名,要删除(Y/N)吗?
”
拆除工作仍在紧张地进行当中,可是del却发现接着要拆除的建筑上分别贴着“只读”、
“系统”、“隐藏”的标签(见图2),这样的建筑是否能拆呢?使用del命令删除普通文
件时可以不加任何附加参数,但是如果要删除的文件含有以上三种属性之一或同时具备
这几种属性,那么在删除时就必须使用其他参数。
目标4:删除c:\windows\sys.dll,假设该文件属性为“系统”、“只读”
del c:\windows\sys.dll /ars
命令格式:del 文件名(如果不在当前目录则给出完整路径,下文中的例子中皆为此形式)
/a[r][s][h][a]
命令讲解:/a表示指定要删除的文件的属性(“a”即“attributes”,意为“属性”)。
在/a后指定具体的文件属性,可选的有r(只读)、s(系统)、h(隐藏)、a(存档)。
小提示
★当只需删除只读文件时,也可以用另一种参数/f,如删除c:\windows下的只读文件
game.log,则可用命令“del c:\windows\game.log /f”(不含引号)。
★在/a参数后的属性中,我们可以使用“-”作为“否”的前缀,如“del
d:\movies\*.* /a-s”即表示删除d:\movies目录下的所有非系统属性的文件。
有一个连锁超市倒闭了,小区里有好几家这种超市,del奉命拆除这些超市废弃的房屋来
支持绿化建设,如果能一下子拆除小区中所有这种超市的房屋该有多方便,同样在
Windows中我们经常需要删除一个目录下所有指定文件名的文件(包括子目录中),这时应
该试试/s。
目标5:删除c:\windows\web目录下所有扩展名为HTT的文件
del c:\windows\web\*.htt /s
命令格式:del 文件名 /s
命令讲解:使用/s参数后,del命令就会在指定目录(如未指定则在当前目录)及其子目录
中搜索所有指定文件名的文件并删除。
小提示
★此法配合注册表的修改可用于清除“欢乐时光”病毒,但需要加上参数/arsh。
当在拆除一个小区中所有建筑时,都得到镇长那儿打一下报告(要谨慎嘛),十分麻烦。
在使用如“del d:\*.*”之类的目录中所有文件删除命令时,都会提示“是否确认(Y/N)
?”。
目标6:删除d:\movies\*.*,并且无须确认
del d:\movies\*.* /q
命令格式:del 文件名 /q
命令讲解:/q称为“安静模式”,即在删除整目录文件时不进行提示。在使用此参数时要
小心,因为如果误打了命令,我们连最后一个挽回的机会都没有了(见图3)。
和del的工作比起来,rd的工作显然轻松地多。在del将小区内的所有建筑拆除之后,rd
负责拆除小区的外墙。
目标7:删除d:\movies目录
rd d:\movies
命令格式:rd 目录名(如果该目录在当前目录下,则无需输入完整路径,下文中的例子皆
为此形式)
命令讲解:rd仅指定要删除的目录,而不加任何参数仅能删除空目录(即目录中无任何文
件)。如果目录中有文件,则会提示错误(见图4)。
镇长对rd近乎偷懒的工作态度再也无法容忍了:“你弟弟del这么辛苦,为什么你在拆除
小区的时候不能帮着拆除建筑呢?”
目录8:删除d:\movies目录及其下的文件、子目录
rd d:\movies /s
命令格式:rd 目录名
命令讲解:在使用此参数时,系统也会提示确认以防误删除。同样地,rd也支持/q参数的
“安静模式”,如“rd d:\movies /s/q”。/s和/q参数同样也仅在Windows
2000/XP/2003中才被支持。
本期脚本套餐:删除系统临时文件
适宜人群:初/中级用户
针对Windows 2000/XP/2003的版本:
@echo off
del %temp%\*.* /s/q
针对Windows 9x的版本:
@echo off
deltree /y %temp%
md %temp%
脚本讲解:在Windows 2000/XP/2003中,系统变量“%temp%”代表“Documents and
Settings”目录下当前用户的临时文件存储目录(见图5);而在Windows 9x中,该系统变
量则表示Windows目录下的Temp目录。由于Windows 9x不支持rd命令,所以就必须使用
deltree命令删除整个临时文件目录及其下所有文件,然后再用md命令重建该目录。
小提示
将删除临时文件的脚本放在启动组中,即可实现每次启动都清空临时文件的功能。
DIY你的DOS菜
上期答案:
1.在D:\下新建名为“cfan”的目录,然后在其下新建名为“info”的子目录。
md d:\cfan
md d:\cfan\info
2.试试如何将第1题的两条命令合并为一条。
md d:\cfan\info
3.将D:\cfan下所有扩展名为TXT文件复制到D:\cs下。
copy d:\cfan\*.txt d:\cs
本期习题(答案下期公布):
1.删除d:\test目录下所有的隐藏文件,要求删除每个文件时都提示确认。
2.删除d:\test目录,包括其下所有的子目录及文件。
3.在第2题的基础上,采用“安静模式”。