(时至今日,系统早已经全面进入Windows时代,甚至很多刚接触电脑的朋友都已经不知DOS为何物了。不过,即便是在Windows系统中,熟练地掌握各种DOS命令及其批处理的编写仍能帮助我们解决许多在窗口环境下非常棘手的问题。从本期开始为大家带来DOS快餐店,希望大家多多光顾,早日成为DOS“大虾”。)
DOS快餐店(1)
√编写批处理文件清空临时文件
√echo及dir命令的用法
★★★

本期任务:自动清除Windows 2000/XP/2003多用户系统临时文件夹Temp的临时文件
维克托来到小菜家作客,可没想到刚一进门,小菜就近乎“扑”过来地哭诉起来:“我的C盘空间怎么越来越少了,刚才又提示虚拟内存不够了!”维克托笑而不答,坐到了小菜的电脑前,熟练地打开了“我的电脑”,并迅速转换到了小菜的临时文件目录,清空了其中的垃圾文件。一系列的动作看得小菜都花了眼,景仰之情溢于言表。反复几次试验后,小菜学会了清空临时文件。
(几天后)维克托还在睡梦中,就被小菜的电话吵醒了。“又怎么啦?”维克托睡眼腥松地问道。“每回都要那样清空临时文件,太麻烦了啦。”小菜委屈地说。这就是维克托接到的第一个DOS任务,下面让我们来看看他是如何解决的。
任务分析:Windows 2000/XP/2003都属于多用户操作系统,每个用户的临时文件夹(通常位于“C:\\Documents and Settings\\<User Name>\\Local Settings\\Temp”,其中<User Name>应替换为该用户的用户名)都会积累许多不再使用的临时文件,逐一删除显得非常麻烦,通过批处理能自动执行清空操作。
第一步:打开“记事本”,输入下列内容并保存为ClearTmp.bat,放置在C:\\WINDOWS\\system32\\GroupPolicy\\User\\Scripts\\Logon(推荐放置在此目录,但其他目录也可):
@echo off
cd %Temp%
for /d %%d in (*) do rd /s /q “%%d”
del /f /q *.*
这段脚本的大意是:将当前目录定位到当前登录的用户所对应的临时文件夹,删除其下所有子文件夹和文件。
第二步:单击“开始→运行”,输入“gpedit.msc”(不含引号)回车,打开“组策略编辑器”。
第三步:在左侧的树状分支中选择“用户配置→Windows设置→脚本-(登录/注销)”,双击窗口右侧的“登录”。
第四步:点击“登录属性”窗口中的“添加”按钮,在“添加脚本”窗口点击“浏览”按钮并在文件选择框中选择ClearTmp.bat,点击“打开”,依次点击“确定”直至关闭“组策略”窗口。
现在点击“开始→注销”,注销后重新登录,打开你的Temp文件夹查看一下临时文件是否已经清除干净。
小提示:
★ClearTmp.bat批处理文件不能用于“组策略”的“计算机配置→Windows设置→脚本-(启动/关机)”,因为在触发“启动/关机”事件时所需的系统变量尚未指定(%TEMP%指定当前登录用户的临时文件目录,而此时并无用户登录),系统因无法找到“%Temp%”变量所指定的目录,则删除当前目录下的所有文件(警告:可能导致大量数据被误删除!)。
★不能在命令行方式下简单地使用“rd /s /q %Temp%”命令删除临时文件,否则可能因为某个程序正在使用Temp目录下的文件而导致命令执行失败,甚至与程序产生冲突造成不可预料的错误。
★系统临时文件夹(通常位于C:\\WINDOWS\\Temp)不能使用“%Temp%”变量来清除临时文件,而应明确指定路径,如:
@echo off
C:
cd Windows\\Temp
for /d %%d in (*) do rd /s /q “%%d”
del /f /q *.*
同样保存为ClearTmp.bat放置在C:\\WINDOWS\\system32\\GroupPolicy\\Machine\\Scripts\\Startup目录下,参考上文的步骤在“组策略编辑器”的“计算机配置→Windows设置→脚本-启动”中添加这个脚本文件,电脑在每次启动时自动清除系统临时文件。

本期命令配料:
1.echo命令
(1)功能:打开或关闭命令回显(即命令运行时的显示)/显示信息
(2)语法:echo [{on|off}] [message]
(3)参数:on 打开命令回显。
off 关闭命令回显。
message 指定要显示的文本(例:执行“@echo This a ECHO command.”,显示“This a ECHO command.”)。
(4)特殊用法:“echo”不带任何参数将显示当前回显设置。“echo.”显示一个空行。

你知道吗——@echo off和echo off的区别
@echo off表示执行了这条命令后关闭所有命令(包括本身这条命令)的回显,而echo off命令则表示关闭其他所有命令(不包括本身这条命令)的回显,“@”的作用就是关闭紧跟其后的一条命令的回显。

(5)使用范例:
将下列代码保存为test.bat后放在C:\\下,然后点击“开始→运行”,输入CMD回车,在命令行方式下键入“c:\\test.bat”(不含引号)。
@echo off
echo.
echo This is the Computer Fans.
echo.
echo We are very like it.
echo.
(插入图1 上面代码的运行结果)

2.cd(chdir)命令
(1)功能:显示当前目录的名称或更改当前目录
(2)语法:cd [[/d] [drive:][path] [..]]
(3)参数:/d 更改当前驱动器或驱动器的当前目录(例:“cd /d f:\\mypath”将当前驱动器更改为f:盘,目录更改为mypath)。
[drive:][Path] 指定要改为的驱动器和目录(例:使用命令“cd f:\\mypath”将驱动器f:上的当前目录设置为mypath;或者使用命令“cd f:”将当前驱动器设置为f:)。
.. 要从子目录切换到它的上级目录(例:“cd ..”或“cd..”)。
(4)特殊用法:“cd”不带任何参数将显示当前驱动器和目录(目录的名称)。“cd\\”更改到根目录。
小提示
★实模式DOS(即“纯DOS”)和Windows 98的MS-DOS命令行不能使用参数“/d”。
★“故障恢复控制台”提示符下不能使用“cd\\”命令更改到根目录,必须使用“cd ..”命令(cd与..之间无空格)。
★“故障恢复控制台”命令提示符不能使用“cd..”(cd与..之间有空格)命令。
★当使用“cd f:\\mypath”命令执行后并不立即切换当前驱动器(如当前驱动器为e:,执行此命令后当前目录仍为e:),必须接着使用f:命令才能将当前目录切换到f:\\mypath,或者使用在命令参数前添加更改的驱动器,例如:
cd f:\\mypath
copy f:*.txt d:\\
上面的命令将f:\\mypath下的所有TXT文件都复制到d:\\中了,“f:”与“*.txt”之间没有使用“\\”即表示切换至f:的当前目录(即上一句“cd f:\\mypath”设置的当前目录)中。
(5)使用范例:
@echo off
cd e:\\myfolder
move e:*.* f:\\