批处理程序学习
一.何为批处理文件(Batch File)
批处理: 就是将不同时间所要做的工作集中在同时间内一次完成.
批处理文件是一个以DOS指令与命令文件组成的文本文件,其扩展名为.BAT
e.g.:
@echo off
:mactest
macadd
if not errorlevel 1 goto mac_pass
echo Mac Address Test Fail !!!
echo failure code : i06
pause
goto mactest
:mac_pass
二.批处理文件的基本指令
@
用来清除批处理文件中接在@之后的指令,使它们在整个执行的过程中不会显示在屏幕上.
%n;n=0,1,…,9
用来承接DOS的外接字符。相当于一些执行程序带参数的形式
最多只能设置到%9
CALL[批处理文件名]
在一个批处理中去执行另一个批处理。流程图如下:
CHOICE [/C:字键][/N][/S][/T:C,nn][提示字符]
用来在批处理中加入交互的功能,即可以通过键盘来选取选项,以执行你想要执行的工作。
参数说明:
/C:字键
用来设置可允许输入的键值。例:CHOICE /C:PEN
则CHOICE执行时便会在屏幕上显示[P,E,N]?
/N
用来取消提示符的显示
/S
用来设置是否要对输入的选择键值做大写的限制
/T:C,nn
用来设置选项的内容值及等待输入的秒数,C指内定的键值﹔nn指要等待输入的秒数(0~99)
提示字符
设置询问用的提示字符
echo
将信息显示到屏幕上。有以下几种用法:
1.显示目前的ECHO状况为ON或OFF。如下:
ECHO
2.将字符显示在屏幕上。如下:
ECHO[字符]
3.显示批处理文件中所要执行的指令。如下:
ECHO ON
将信息显示到屏幕上。有以下几种用法:
4.不显示批处理文件中所要执行的指令。如下:
ECHO OFF
5.显示一行空白。如下:
ECHO.
FOR %%VAR IN (文件名或字符集) DO 指令[指令参数]
对某集合的所有文件或字符重复执行相同的指令。其中,VAR是一个变量,其值可为单一一个字母(如:A~Z或a~z);(文件名或字符集)是一个或一个以上的文件或字符(须以空白或逗号隔号)。
C:\>FOR %I IN (A: B:) DO DIR %I /W
Note:
DOS下用应为:FOR %%VAR IN (文件名或字符集) DO 指令 [指令参数]
GOTO 注标位置(或名称)
跳转指令,每当批处理文件执行到此指令时,批处理文件控制权就会跳到注标处继续执行。
设置注标,例:
:LOOP
Loop即为要到的注标位置
IF
根据条件来判断是否要执行循环内指令。有三种形式:
1.IF [NOT] ERRORLEVEL n指令
含义:若执行完前一个指令之后所返回的结果大于或等于n时,则表示条件成立,并立即执行其后的指令。
Note:通常DOS在执行完指令后都会返回一个值(即n值)来表示是否顺利。
根据条件来判断是否要执行循环内指令。有三种形式:
2.IF [NOT] EXIST 文件名称 指令
含义:若所指的文件名称存在,则表示条件成立,并立即执行其后的指令。
根据条件来判断是否要执行循环内指令。有三种形式:
3.IF [NOT] 字符1 ==字符2 指令
含义:若字符1与字符2相同,则表示条件成立,并立即执行其后的指令。
pause
用来暂停批处理文件的执行。
并在屏幕上显示出“Press any key to continue”的信息,若要继续执行,则可再按下任意键。
REM注释
REM为REMark的缩写,勇于注意说明的意思。
@echo off
d:
cd\bear
spk
:usex
net use x: \\rr\rev /yes
if not errorlevel 1 goto x_pass
showpf /fail
echo.
echo Lan card not workt !!
echo Lan card not workt !!
pause
goto usex
:x_pass
msifc x:\auto.278 d:\boot\auto.278
if not errorlevel 1 goto ver_pass
showpf /fail
echo.
echo Test HDD version different !!
echo Test HDD version different !!
pause
goto x_pass
:ver_pass
net use x: /delete
cd\boot\lnk
net time \\rr /set /y
if not errorlevel 1 goto time_pass
showpf /fail
echo.
echo LAN compare time error !!
echo LAN compare time error !!
pause
goto ver_pass
:time_pass
del c:\bbb
cd\boot
power
配置文件(CONFIG.SYS)
配置文件(Configuration File)是一个很特殊的文件,用来建立DOS的工作环境
例:驱动器的管理、驱动程序的安装、文件打开数的设置等等。
计算器执行过程:
Autoexec.bat自动执行批处理文件,每当启动计算器,DOS在根目录找CONFIG.SYS配置文件,并依照该文件的内容来设置DOS的系统环境。
由于CONFIG.SYS文件内的设置在计算器启动后即立刻生效,所以CONFIG.SYS文件内容修改后,必须重新启动一次,才能让已修改的环境设置生效。
BUFFERS = n[,m][/x]
表示设置磁盘缓冲区的数目,通常设置为20-30左右。缺省值一般为15。磁盘缓冲区是一块内存区,用于存储从磁盘读入的数据或存储写到磁盘的数据。
n是指缓冲区的数目
m是指每次存取的扇区数
设置磁盘缓冲区目的:提高数据存取的效率
配置文件的专用指令
COUNTRY = xxx[,yyy][,路径名称]
日期与时间的使用格式常会因国家的不同而不同,此指令可允许你以各国家所使用的格式来表示日期与时间。
xxx是指国家代号
yyy是指页码
路径名称是存放特定国家数据格式的文件所在。
DEVICE = 驱动程序名称
DEVICEHIGH = 驱动程序文件名称
配置文件的专用指令
用于加载一些内存驻留程序,用于管理设备。比如内存管理程序和光驱驱动程序等。如:
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DEVICEHIGH=C:\CDROM\CDROM.SYS
DEVICEHIGH与DEVICE的不同是前者将程序加加载高端内存。
DOS
一般情况下,需要CONFIG.SYS档加入这条命令,这样会将DOS的系统文件移入高端内存,空出更多的基本内存给其它软件使用。
需要注意的是,如果没有安装EMM386.EXE,UMB,那么这条指令将是无效的。
FILES = n
表示可同时打开的档数,一般可选择20到50,需要注意的是,如果把FILES的值设得过大会占用过多的基本内存。
系统缺省为FILES=8。
[MENU]
MENUITEM=TST,Save test CMOS setup
MENUITEM=DEF,Save default CMOS setup
MENUITEM=ME,Windows ME Intel 801DB
MENUITEM=FB,Flash BIOS
MENUDEFAULT=ME,3
MENUCOLOR=15,1
[COMMON]
DEVICE=C:\WINDOWS\IFSHLP.SYS
[DEF]
[TST]
[ME]
[FB]