批处理学习之命令

来源:互联网 发布:魔兽世界经典旧世 知乎 编辑:程序博客网 时间:2024/05/01 05:07

批处理学习之命令

学习批处理命令时,要经常查找系统帮助.在命令行下输入"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
请按任意键继续. . .

原创粉丝点击