了解批处理命令的语法与功能

最近对批处理有了点兴趣,来做一下简单的笔记。

-----转载请注明来自:博客园-邦邦酱好

1. echo 在屏幕显示相关的文字信息
语法:echo {on|off} message
注意:它影响设置之后的所有命令,直到另一个echo命令改变状态为止

2. @ 禁止当前执行的命令回显在屏幕上,不受echo的影响
语法:@command   
注意:它只对当前行起作用

3. goto 流程控制转向
语法:goto label
注意:label是批处理文件中的某一行,它以:开头并紧跟标识符,标识符不能含逗号,冒号等,但可以使用空格,最多8个字符。
例子:

goto ss
:ss
type a.txt


4. call 可调用另一个批处理程序,可调用指定标号处后面的所有命令。
语法:call path filename parameters
  或:call :label arguments  (label的写法同上)
注意:call命令转向标号并执行到文件结束时再返回调用处继续运行下面的命令。而goto语句在跳转后就不再返回

5. pause 暂停批处理的执行并给出提示信息。

6. start 重新启用一个单独的命令行窗口
语法:start "title"  /path /wait filename
注意:start "a.txt内容" /wait type a.txt  -->使用了/wait参数,需要在新窗口中输入exit并按回车键,正常退出新打开的命令窗口,这样原来的程序才会继续执行start以后的命令。

7. rem 注释命令
语法:rem comment
注意:使用rem命令时,应该将回显状态关闭,否则会将rem命令的正行信息输出到屏幕

8. if 通过条件来决定批处理程序应该如何执行
语法:if [not] .... command else expression
注意:条件可以是:s1==s2; exist filename; s1 compareop(EQU,NEQ,LSS,LEQ,GTR,GEQ) s2
再次注意:else子句(包括单括号)必须跟if中的最后一个命令在同一行,否则会出现错误。
如:

if exist a.txt (echo find a.txt file~ its content is:
type a.txt) else (
echo not found)
if not %errorlevel% EQU 0  (errorlevel代表上一步程序中运行返回的结果)
goto again


9. set 创建,设置,查看或删除环境变量
语法:set /a expression | /p variable = string
注意:

rem 设置
set xxx="c:\"     
rem 显示所有以x开头的变量
set x   
rem 使用2个百分号引用变量              
dir /w %xxx% 
rem 删除xxx变量   
set xxx=  


10. setlocal 在程序运行时设置自身的临时变量环境,不影响系统的变量环境设置
语法:setlocal ... endlocal
注意:

rem 进入临时设置状态
setlocal     
rem 临时设置    
path=d:\   
set path
rem 取消临时设置状态
endlocal     
set path 


11. shift 更改处理参数的方式
语法:shift /n 从第n个参数开始移位
注意:%0-%9专用于处理从命令行获得的参数,依次代表相应的参数。使用shift时,会自动将%1的值赋给%0,%2的值赋给%1..
例子:

@echo off
:round
if "%1"=="" goto end
echo %1的内容如下:
type %1
shift
echo.
goto round
:end


12. for 可对一组不同的文件或数据进行循环处理
语法:for {%var | %%var} in (set) do command
其中%var(for命令后的变量是区分大小写的,set命令后的变量是不区分大小写的)是命令提示符执行for命令,而%%var是批处理文件执行。set是指定要处理的一个或多个文件,目录,数值范围以及文本字符串
例子:

@echo off
set /a sum=0
for %%x in (*.txt) do (
echo %%x的内容如下:
type %%x
echo.
set /a sum=sum+1
)
echo 一个显示了%sum%个文本文件


13. *(任意多个字符,包括0个),?(任意单个字符)
 

14. 重定向符(<,>,>>)

@echo off
rem 将“type a.txt”字符串添加到b.txt的文本内容之后
echo type a.txt >> b.txt 
type b.txt
rem 用<定向符将b.txt的文本内容传给sort命令进行排序,并显示
sort < b.txt 

注意:>会替换数据,>>只是将数据源添加到目标数据后

15. 管道符(|) 将一个命令的输出数据提取出来,作为另一个命令的输入

find “requirements” a.txt | sort > result.txt

在a.txt文件中找出包含“requirements”的行,把这些行传给sort命令进行排序,保存到result.txt文件中


posted @ 2014-09-24 21:16  邦邦酱好  阅读(477)  评论(0编辑  收藏  举报