(小标题: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题的基础上,采用“安静模式”。

 

转自cfan,感谢PK分享经验

1 对 “DOS快餐店(四)”的想法;

评论被关闭。