批处理学习之命令
学习批处理命令时,要经常查找系统帮助.在命令行下输入"command /?",则可显示相应的command帮助.
1.echo
echo命令有两个作用:
(1)将命令回显打开或关闭.
用法:ECHO [ON | OFF]
如:@echo off 关闭回显;
(2)显示信息.
用法:ECHO [message]
如:echo zhangyang 显示"zhangyang"
2.pause
作用:暂停批处理程序,并显示以下消息:
请按任意键继续. . .
3.rem
作用:在批处理文件或 CONFIG.SYS 里加上注解或说明。
用法:REM [comment]
如:rem 这是自动产生QQ号码的批处理程序
和::功能相同,相当于C语言中的"//"
4.goto
作用:跳转命令,将 cmd.exe 导向到批处理程序中带标签的行。
用法:GOTO label
label:指定批处理程序中用作标签的文字字符串。
如:goto Produce 跳转到Produce标签处
5.call
作用:从批处理程序调用另一个批处理程序。
用法:CALL [drive:][path]filename [batch-parameters]
batch-parameters:指定批处理程序所需的命令行信息。
如:call clear.bat
6.start
作用:启动另一个窗口运行指定的程序或命令。
用法:START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]
如:start cmd 打开另一命令行窗口
start 批处理教程.doc 打开批处理教程.doc文档
start www.baidu.com 打开百度主页
7.set
作用:显示、设置或删除 cmd.exe 环境变量。
用法:
SET [variable=[string]]
variable 指定环境变量名。
string 指定要指派给变量的一系列字符串。
(1)定义普通变量
如:set var=zhangyang
echo %var%
执行结果为:zhangyang
(2)SET /P variable=[promptString]
/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。
如:set /p var=请输入编号:
请输入编号:1000
执行echo %var%后,显示结果为:1000
(3) SET /A expression
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。
set /a var=1
set /a var+=2
执行echo %var%后,显示结果为:3
8.if
作用:执行批处理程序中的条件处理。
用法:
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
(1)IF [NOT] ERRORLEVEL number command
通过判断上一条命令执行结果,来决定下一个步骤.
一般上一条命令的执行结果代码只有两结果,"成功"用0表示 "失败"用1
如:errorlevel.bat
@echo off
ping www.tom.com >ip.txt
if errorlevel 0 (echo ping succeed!) else (echo ping fail!)
pause
执行结果:ping succeed!
(2)IF [NOT] string1==string2 command
比较string1 和string2 是否相等,若相等,则执行if后的命令,否则将不执行.
如:stringequal.bat
@echo off
if "zhangyang"=="zhang yang" (echo equal) else (echo nonequal)
pause
执行结果:nonequal
(3)IF [NOT] EXIST filename command
判断文件是否存在,若存在,则执行if后的命令,否则将不执行.
如:exist.bat
echo off
if exist qq.dic (
echo qq.dic exist
del qq.dic
) else (echo qq.dic doesn't exist)
pause
执行结果:qq.dic doesn't exist
9.for
作用:对一组文件中的每一个文件执行某个特定命令。
用法:FOR %%variable IN (set) DO command
%%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
(1)for /D %%variable IN (set) DO command
如:for_D.bat
@echo off
for /d %%i in (D:/M*) do echo %%i
pause
说明:将D盘目录下以"M"开头的目录显示出来
执行结果:
D:/MASM
D:/Microsoft SQL Server 2000
D:/Microsoft Vistual Studio 6.0(English)
D:/MSDN for Visual Studio 6.0
请按任意键继续. . .
(2)FOR /R [[drive:]path] %%variable IN (set) DO command
检查以 [drive:]path 为根的目录树,指向每个目录中的
FOR 语句。如果在 /R 后没有指定目录,则使用当前
目录。如果集仅为一个单点(.)字符,则枚举该目录树。
如:for_R.bat
@echo off
for /r D:/ %%i in (D:/M*) do echo %%i
pause
执行结果:
G:/my.doc
G:/zy/yy/my.txt
G:/M01/MSWINSCK.OCX
请按任意键继续. . .
(3)FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。
如:for_L.bat
@echo off
set sum=0
set /p var=请输入变量
for /l %%i in (1,1,%var%) do set /A sum+=%%i
echo 1到%var%的和为:%sum%
pause
执行结果:
请输入变量100
1到100的和为:5050
请按任意键继续. . .
(4)
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
eol=c - 指一个行注释字符的结尾(就一个)
skip=n - 指在文件开始时忽略的行数。
delims=xxx - 指分隔符集。这个替换了空格和跳格键的
默认分隔符集。
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本身。这会导致额外变量名称的分配。m-n
格式为一个范围。通过 nth 符号指定 mth。如果
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本。
eol:注释行的字符
delims:分隔符集.默认为空格和跳格键
tokens:每行的第几列符号
如:ShowIP.bat
@echo off
for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
echo %ip%
pause
执行结果:
192.168.1.190
请按任意键继续. . .