一、常用命令简介
1、echo命令
2、rem命令
3、pause命令
4、call命令
5、start命令
6、goto命令
7、set命令
二、常用符号简介
1、回显屏蔽 @
2、重定向1 >;与>>
3、重定向2 <
4、管道符号 |
5、转义符 ^
6、逻辑命令符
三、命令释义
1、文件夹管理
2、文件管理
3、网络命令
4、系统管理
四、语句结构
1、if语句(选择结构)
for语句(循环结构)
五、字符串
1、截取字符串
2、替换字符串
3、字符串合并
4、扩充字符串
六、数值计算
七、批处理的相关知识
1、环境变量
2、用户变量
3、参数
4、返回值
5、ASCII码
6、ArcGIS中的批处理
八、注意
九、示例
1、统计svn代码行变更数
一、常用命令简介
1、echo 命令
打开或关闭回显功能,或显示消息。
Syntax :echo [{on|off}] [message]
Sample:@echo off / echo hello world
2、rem 命令
注释命令
:: 也具有rem的功能
但::和rem还是有区别的,当关闭回显时,rem和::后的内容都不会显示。
但是当打开回显时,rem 后的内容会显示出来,然而::后的内容仍然不会显示。
Syntax :Rem [注释内容]
Sample:Rem 你好。
3、pause 命令
暂停命令。运行 Pause 命令时,将显示下面的消息:
Press any key to continue. . .(或:请按任意键继续. . .)
Sample:
@echo off
:begin
copy G:*.* d:\back
echo 请插入另一张光盘...
pause
goto begin
在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张光盘盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。
4、call 命令
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
Syntax:call [路径文件名] [标签]]
Parametes:[Drive:}[Path] FileName
指定要调用的批处理程序的位置和名称。
5、start 命令
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
Sample:start calc.exe即可打开Windows的计算器。
6、goto 命令
跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
Syntax:goto label (label是参数,指定所要转向的批处理程序中的行。)
Sample:
:label
start
goto label
运行以上这段命令,就会打开很多个窗口(用来整人相当不错)。这段命令的意思是,先用start命令打开窗口,再用goto label命令转到label标签,即第一行后面的命令。注意标签名字前面要加上英文的冒号。
7、set 命令
显示、设置或删除变量。
显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置和调用变量:例如set aa=abcd,就是把aa定义为abcd。如果要调用这个变量,就把aa两边加上个百分号。
例如:
set aa=abcd
echo %aa%
pause
运行这段命令就会显示“abcd”。
删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令无实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。
二、常用符号简介
1、回显屏蔽 @
表示不显示@后面的命令。
Sample:通过运行批处理文件对比pause和@pause命令即可明了@的效果。
2、重定向1 >;与>>
将输出信息重定向到指定的设备或文件。系统默认输出到显示器。
Sample:echo aaaaa>a.txt
将aaaaa输出到文件a.txt中。若文件a.txt本来已经存在,该命令将首先擦除a.txt中的所有信息,然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息aaaaa。
Sample:echo aaaaa>>a.txt
和echo aaaaa>a.txt的区别在于:若a.txt已经存在时,>>会追加在a.txt文本中;若a.txt不存在时,两者没有区别。
需要注意的是,因为数字的特殊性,在echo输出数字时,请在后面加上空格,例如:echo 9313 >a.txt,否则有可能造成输出不完整。
3、重定向2 <
将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息。
重定向使用举例:
=========================================
@echo off
echo abcdefg——这是文件a.txt中的信息>a.txt
echo 请任意输入字符,以回车结束:
set /p ifo=
cls
echo 【 从屏幕获得的输入信息 】
echo %ifo%
set /p ifo=<a.txt< p="">
echo 【 从文件a.txt获得的输入信息 】
echo %ifo%
pause>nul
=========================================
读者观察命令与输出即可体会到重定向的功能和效果。
4、管道符号 |
Syntax:command_1|command_2
将command_1的输出重定向为command_2的输入。
Sample:
=========================================
@echo off
echo aaaa>a.txt
del /p a.txt
pause
=========================================
@echo off
echo aaaa>a.txt
echo y|del /p a.txt
pause
=========================================
对比以上两个批处理执行结果,读者即可明白管道符的用法和效果。
5、转义符 ^
将特殊符号转化为一般符号,即剥离特殊符号的特殊地位。特殊符号指:| & > <
比如,如果我们想输出符号“>;”,直接用命令 echo > 是不行的,必须修改为 echo ^>;。其余几个特殊符号类似需要有同样的处理。
Sample:
=========================================
@echo off
echo aaaa>a.txt
echo 第一句echo执行完毕
echo aaaa^>a.txt
echo 第二句echo执行完毕
pause
=========================================
比较上面的两句echo,第一句echo将信息aaaa输出到了文件a.txt,而第二句echo则在直接屏幕上显示出aaaa>a.txt
6、逻辑命令符
逻辑命令符包括:&;、&&;、||
&-它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败;
&&-当&&;前面的命令成功执行时,执行&&;后面的命令,否则不执行;
||-当||前面的命令失败时,执行||后面的命令,否则不执行。
=========================================
@echo off
echo ^|^|
reg add HKCU /v try /f||echo **失败**
reg add HKCU1 /v try /f||echo **成功**
echo ^&^&