批处理教程

介绍具体命令之前,先普及一些批处理知识:

1. 批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令


2. 批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来 循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括 内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 


3. 每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个 良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\batch),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置 上C:\batch,你就可以在任意位置运行所有你编写的批处理程序。


4. 在DOS和Win9x/Me系统下,C盘根目录下的 autoexec.bat 批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你 可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例:  

@ECHO OFF  
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;
C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH  
LH SMARTDRV.EXE /X  
LH DOSKEY.COM /insert  
LH CTMOUSE.EXE  
SET TEMP=D:\TEMP  
SET TMP=D:\TEMP  


常用命令:

echo:表示显示此命令后的文本

echo off:表示在此语句后所有运行的命令都不显示命令行本身

call:调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令)  

pause:运行到此句会暂停,显示Press any key to continue... 等待用户按任意键后继续

rem:相当于 js 中的 //,注释当前行


特殊符号:

@:隐藏执行的命令,只显示结果,如 echo 和 @echo


&:命令连接符,把两个命令连续执行,而不用分行,如 dir C:\ & dir D:\


&&:连接两个命令,当&&前的命令成功时,才执行&&后的命令,如 dir C:\ && dir D:\


|:将上一个命令的输出内容,作为下一个命令的输入内容,如 type C:\windows\*.log|more


||:当||前的命令失败时,才执行||后的命令


>:重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容被覆盖,如dir C:\ > D:\test.text


>>:重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会追加


<:重定向符,将后面的指定设备的内容,作为前面命令的输入内容


^:取消特殊符号的作用,如 echo ^>> 1.txt


*:通配符,表示任意个字符,如 del C:\windows\*.log


?:通配符,表示任意一个字符,如 net ?ser


.:表示当前目录,如 dir .\


..:表示上一级目录,如 cd..


"":界定符,通常用来引用含有空格的目录,如 dir "C:\Documents and Settings"


::标签定位符,表示后面的内容是一个标签名,如

@echo off
:start
pause
goto start


,:某些时候可以当空格用,如 dir,C:\


;:当命令相同时,可以将不同目标用;来隔离,如 dir C:\;D:\


%:参数表示符,参数是指在运行批处理文件时在文件名后加的字符串,变量可以从 %0 到 %9,%0表示文件名本身,参数用%1到%9顺序表示。


高级命令:

if:你懂的,主要说它的三种格式:

1. if "参数" == "字符串" 符合此条件的命令,如 if "%1" == "a" format a

2. if exist 文件名 符合此条件的命令,如 if exist config.sys edit config.sys

3. if errorlevel 数字 符合此条件的命令(DOS程序运行时都会返回一个数字给DOS,称为errorlevel),如 if errorlevel 2 goto X


goto:批处理文件运行到这里将跳到goto所指定的标签处,一般与 if 配合使用


choice:此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加 /c: 参数,c:后应写提示可输入的字符,之间无空格,它的 errorlevel 为1234等,如 

@echo off  
choice /c:dme defrag,mem,end  
if errorlevel 3 goto defrag 应先判断数值最高的错误码  
if errorlevel 2 goto mem  
if errotlevel 1 goto end  

:defrag  
c:\dos\defrag  
goto end  

:mem  
mem  
goto end  

:end  
echo good bye  


for:你也懂的,格式为:for [%%f] in (集合) do [命令],如

REM 如果是以bat或txt结尾的文件,则显示文件的内容  
for %%c in (*.bat *.txt) do type %%c

  

posted @ 2011-12-10 01:44  越己  阅读(392)  评论(0编辑  收藏  举报