常用特殊符号
1. @ 命令行回显屏蔽符
2. % 批处理变量引导符
3. > 重定向符
4. >> 重定向符
5. < 、>&、<& 重定向符
6. | 命令管道符
7. ^ 转义字符
8. & 组合命令
9. && 组合命令
10. || 组合命令
11. "" 字符串界定符
12. , 逗号
13. ; 分号
14. () 括号
15. ! 感叹号
16. 批处理中可能会见到的其它特殊标记符: (略)
CR(0D) 命令行结束符
Escape(1B) ANSI 转义字符引导符
Space(20) 常用的参数界定符
Tab(09) ; = 不常用的参数界定符
+ COPY 命令文件连接符
* ? 文件通配符
/ 参数开关引导符
: 批处理标签引导符
一, @
概念:
命令行回显屏蔽符
这个字符在批处理中的意思是关闭当前行的回显。
我们从前几课知道ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉 ECHO OFF这个命令,
现在我们在 ECHO OFF这个命令前加个 @,就可以达到所有命令均不回显的要求.
二, %
概念:
批处理变量引导符.
这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍)。
引用变量用%var%,调用程序外部参数用%1至%9等等
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %* 为命令行传递给批处理的参数
%0 批处理文件本身,包括完整的路径和扩展名
%1 第一个参数
%9 第九个参数
%* 从第一个参数开始的所有参数
参数 %0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。
举例:最简单的复制文件自身的方法
d:\cmd\02>echo copy %0 d:\cmd > 1.bat // 创建1.bat文件, 内容->copy %0 d:\cmd
双击1.bat
三, >
概念:
输出重定向命令
这个字符的意思是传递并且覆盖,
作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台)
在NT系列命令行中,重定向的作用范围由整个命令行转变为单个命令语句,
受到了命令分隔符&,&&,||和语句块的制约限制。
举例:
d:\cmd\02>echo hello>1.txt // 创建文件1.txt,内容->hello
四, >>
概念:
输出重定向命令,
>> , 没有则创建, 有则追加
五, <、>&、<& 重定向符
1, <
概念:
输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。
举例:
d:\cmd\02>echo 2033-07-11>temp.txt
d:\cmd\02>date
当前日期: 2013/07/11 周四
d:\cmd\02>date
d:\cmd\02>date
当前日期: 2033/07/11 周一
六, |
概念:
命令管道符
将第一条命令的结果作为第二条命令的参数来使用
格式:
第一条命令 | 第二条命令 [| 第三条命令...]
举例:
d:\cmd\01>dir . | find ".txt"
2013/07/10 10:20 19 temp.txt
说明:
1, dir . : 显示文件及目录
2, find ".txt": 查找包含".txt"的行,并显示
3, | : 将 "dir ." 的结果 作为 find 的参数
七, ^
概念:
转义字符
^ 是对特殊符号<,>,&的前导字符,
在命令中他将以上 3 个符号的特殊功能去掉,
仅仅只把他们当成符号而不使用他们的特殊意义。
功能:
1, 转义; 2, 续行符.
举例:
d:\cmd\02>echo hello world! ^> 1.txt
hello world! > 1.txt
d:\cmd\02>echo h^
More? e^ // More? 是DOS的提示
More? l^
More? l^
More? o
hello
说明:为什么转义字符放在行尾可以起到续行符的作用呢?
原因很简单,因为每行末尾还有一个看不见的符号,即回车符,
转义字符位于行尾时就让回车符失效了,从而起到了续行的作用。
八, &
概念:
组合命令
& 、&&、|| 为组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行。
这在批处理脚本里是允许的,而且用的非常广泛。因为批处理认行不认命令数目。
这个符号允许在一行中使用 2 个以上不同的命令,当前一个命令执行失败了,也不影响后边的命令执行。
这里 & 两边的命令是顺序执行的,从前往后执行。
格式:
第一条命令 & 第二条命令 [& 第三条命令...]
举例:
d:\cmd\02>dir z:\ & dir y:\ & dir .
顺序执行 commond1, commond2, commond3, 错了也继续
九, &&
概念:
组合命令
用这种方法可以同时执行多条命令,
当碰到执行出错的命令后将不执行后面的命令,
如果一直没有出错则一直执行完所有命令
格式:
第一条命令 && 第二条命令 [&& 第三条命令...]
举例:
d:\cmd\02>dir y:\ && dir .
系统找不到指定的路径。
d:\cmd\02>dir . && dir y:\
十, ||
概念:
组合命令,
用这种方法可以同时执行多条命令,当一条命令失败后才执行第二条命令,
当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;
提示:组合命令和重定向命令一起使用必须注意优先级
优先级:管道命令 > 重定向命令 > 组合命令
格式:
第一条命令 || 第二条命令 [|| 第三条命令 ...]
举例:
d:\cmd\02>dir . || dir c:\
十一, ""
概念:
字符串定界符
双引号允许在字符串中包含空格
举例:
cd "program files"
cd progra~1
cd pro*
以上三种方法都可以进入 program files 这个目录
十二, ,
概念:
逗号, 相当于空格
举例:
d:\cmd\02>dir d:\cmd\02
d:\cmd\02>dir,d:\cmd\02
十三, ;
概念:
分号, 当命令相同时,可以将不同目标用";"来隔离,但执行效果不变,
如执行过程中发生错误,则只返回错误报告,但程序仍会执行。
(测试:win7,MS-DOS, 只要有一个错误的 就不会执行)
举例:
d:\cmd\02>dir d:\cmd d:\cmd\02 // OK
d:\cmd\02>dir d:\cmd;d:\cmd\02 // OK
d:\cmd\02>dir a:\;d:\cmd;d:\cmd\02 // error
d:\cmd\02>dir d:\cmd;d:\cmd\02;z:\ // error
十四, ( )
概念:
小括号, 在批处理编程中有特殊的作用,左右括号必须成对使用,
括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。
举例:
d:\cmd\02>echo 1 & echo 2 & echo 3
1
2
3
-----------------
2.bat =>
@echo off
(
echo 1
echo 2
echo 3
)
说明:
以上两例, 都被视为一条命令