我先简单说一下什么是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 Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
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_machin\software\microsoft\windows nt\currentversion\winlogon] >>
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命令通过条件选择和循环的组合,也可以完成一些复杂的任务,关键就是可以自动化,一切显得快捷、准确。