先简单说一下什么是DOS和批处理。

DOS是指磁盘操作系统,在DOS的世界里,没有图标,没有窗口,所以也不需要鼠标,与电脑的交互通过鼠标输入命令字符完成。在现代windows流行的时代,doS是不是就一无是处了呢?当然不是,DOS可以作为一种不错的工具存在,特别是不能登录到Windows系统时,因为其完成系统的安装门槛较低,可以不需要硬盘(Windows系统因体积较大,所以需要安装到硬盘,当然PE系统也可以直接由光盘或U盘启动)。其对系统的管理,对磁盘的操作,对网络的管理都具有Windows所不具有的一些优势。

批处理简单理解就是将单个的DOS命令串起来,放到一个文件中,批量执行DOS命令。当然,类似于程序设计语言,也可以应用变量、条件选择、循环等,所以在一些特定的场合,功能也十分强大。

下面以网上流行的“清理系统垃圾文件代码”,新建一个批处理文件,来清理系统垃圾,来看一下DOS命令和批处理的梗概。

1 建立“清理系统垃圾”的批处理文件;

1.1 新建文本文档,复制粘贴以下内容:

@echo off

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 SettingsTemporary Internet Files*.*"

del /f /s /q "%userprofile%Local SettingsTemp*.*"

del /f /s /q "%userprofile%recent*.*"

echo 清理系统垃圾完成!

echo. & pause

1.2 文件另存为“清理系统垃圾.bat”,如下对话框:

点击“保存”后,即可看到下面如下图标,双击即可运行,开始清理垃圾。

上面说过,批处理bat文件就是一串串DOS命令,上面的DOS命令其实就只有3个:

  • @:隐藏命令行本身的回显;

  • echo:允许或禁止批处理文件在执行的过程中回显命令;

  • del:删除文件;

前两个命令相对简单,常用在批处理中,后面的del命令因为可以通过参数控制所以显得相对复杂一点,可以打开“命令提示符”(cmd.exe)通过命令"del /?"查看。(注意上面的单行在"命令提示符"窗口也是可以执行的。)

2 应用变量、条件选择和循环的批处理(批处理重命名)

setlocal enabledelayedexpansion

set n=0

set /p name=请输入更改后的文件前缀字母部分,如输入pic,会形成如“”的名字,如不需要则直接回车:

for /f "tokens=1,2 usebackq delims=." %%A in (`dir /o:n /b`) do (

if not "%%~nA"=="%~n0" ( rem 不更改bat文件的名称;

if not "%%B"=="html" ( rem 不更改html文件的名称;

if not "%%A.%%B"=="%%A." ( rem 不更改文件夹的名称;

set /a n=n+1

if !n! lss 10 (

ren "%%A.%%B" "!name!0!n!.%%B"

) else (

ren "%%A.%%B" "!name!!n!.%%B"

)))))

3 批处理修改注册表

@echo off

echo Windows Registry Editor Version 5.00 >

echo 正在设置自动登录当前系统的帐户…

echo [hkey_local_machinsoftwaremicrosoftwindows ntcurrentversionwinlogon] >>

echo "autoadminlogon"="1" >>

echo "defaultusername"="normalaccount" >>

echo "defaultpassword"="noprivilege" >>

echo.

echo 成功将"normalaccount"帐户设置为当前自动登录的帐户!

regedit /s

del /q /f >nul

其思路是用批处理新建一个临时文档,利用此文档修改注册表实现自动登录宽带帐户。

4 批处理自动建立目录网页

echo ^<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";^> >a.html

echo ^<html xmlns=";^> >>a.html

echo ^<base target="_blank" /^> >>a.html

echo ^<head^> >>a.html

echo ^<title^>contents^</title^> >>a.html

echo ^<style type=text/css^> >>a.html

echo div{width^:74.125^%%;} >>a.html

echo div{margin^:auto;} >>a.html

echo div{margin^:auto;} >>a.html

echo li{width^:33^%%;} >>a.html

echo li{float^:left;} >>a.html

echo li{height^:32px;} >>a.html

echo li{line-height^:32px;} >>a.html

echo li{overflow^:hidden;} >>a.html

echo li{white-space^:nowrap;} >>a.html

echo li{text-overflow^:ellipsis;} >>a.html

echo img{border^:0 red solid;} >>a.html

echo a:link{text-decoration: none; color:#000;} >>a.html

echo ^</style^>^</head^> >>a.html

echo ^<body^>^<div^> >>a.html

for /f "tokens=1,2 usebackq delims=." %%a in (`dir /o:n /b`) do (

if not "%%a.%%b"=="%%a." (

if not "%%a.%%b"=="a.html" (

echo ^<li^>^<a href="%%a.%%b"^>%%a.%%b^</a^>^</li^> >>a.html

)

)

)

for /f "tokens=1,2 usebackq delims=." %%a in (`dir /o:n /b`) do (

if "%%a.%%b"=="%%a." (

echo ^<li^>^<a href="%%a;^>%%a^</a^>^</li^> >>a.html

)

)

echo ^</div^> >>a.html

echo ^</body^> >>a.html

echo ^</html^> >>a.html

通过以上一些批处理的实例可见,一些简单的DOS命令通过条件选择和循环的组合,也可以完成一些复杂的任务,关键就是可以自动化,一切显得快捷、准确。

相关推荐