来自http://tunps.com/batch-scripting-symbol
1. @
不 显示命令自己,如@dir /a
此 一般只在批处理中,与echo off配合使用。
如@echo off关 闭回显,并不显示echo off自己
2. & , && , ||
一 个&的 意思是连接两条命令,如:
<1>echo hello & dir /a
<2>echo hello
dir /a
<1>与<2>的 结果一样,都是先显示hello然后执行dir /a
用&可 以将两条命令放在一行
&&的 意思也是连接两条命令,但是要作一个判断,也就是说在&&前面的命令执行成功的时候才会执行&&后 面的。如果&&前 面的执行失败,&&后面的就不执行。
而||刚 好与&&是 相反的,即||前 面的命令执行失败,||后面的才运行,否则||后面的不运行。
举 个例子:
ping /n 2 127.1 & cls //无论成功与否都清屏
ping /n 2 www & cls //无论成功与否都清屏
ping /n 2 127.1 && cls //ping通了才清屏
ping /n 2 www && cls //ping不通不清屏
ping /n 2 127.1 || cls //ping通了不清屏
ping /n 2 www || cls //ping不通才清屏
ping 127.1也 就是ping 自己,ping自己当然能ping的 通啦,而www什 么都不是,当然ping不通。
将 上面的每行命令自已实验一下就明白了
3. |
管 道符,即“|”前面的输出作为后面的输入,例如:
echo list volume | diskpart
dir /b /s c:\windows | more
4. <
重 定向输入。正常情况下,命令是接收键盘输入的,例如,在CMD下用del删 除一个文件夹下的所有文件,如del f:\music 会出现提示是否删除[y/n]?这 时按了y 就 删了,按n 就退出。我们还可以建立一个文本如a.txt,里面写个y,然 后输入del f:\music < a.txt这时就从a.txt里 取出字母y输 入到命令里,就相当于在键盘上按了个y一样
当 然在这里我们也可以用“|”来让他自动删除,不用你来确认,如:
echo y | del f:\music
5. > , >> , 2> , 2>>
这 四个符号都是重定向输出的意思,但各有区别。正常情况下输入一命令,其结果会输出到屏幕上,而我们在后面加上重定向输出符号,可以把结果输出到一个文件 中,或直接输出到打印机里。例如:
“>” 重定向输出到文件,并覆盖原文件内容,如:dir /b /s c: >c:\a.txt
“>>” 重定向输出到文件,并追加到文件结尾,如:dir /b /s d:>> c:\a.txt
“2>” 错 误重定向输出到文件,并覆盖原文件内容,如:dir /b /s z:\ 2> c:\a.txt (假 设没有z盘)
“2>>” 错 误重定向输出到文件,并追加到原文件结尾,如:dir /b /s z:\ 2>> c:\a.txt (假 设没有z盘)
6. %
这 个符号不太好讲,除了在set /a 里面是表示两数相除取余,其它地方一般都是用来表示一个变量的,但用的地方不同, 其表示方式不同。如%1用来表示一个变量;%userprofile%是使用userprofile环 境变量;如果是在cmd 下运行for用%a表 示一个传递的参数;而在批处理下运行for 就要用%%a来表示;而在变理的嵌套使用 的时候,外层就要在加一对%,如:%%num:~0,%a%%%。虽说有这么多表示方式,但每 个地方怎么用都是固定的,这里不用刻意的去记,多看看别人写的代码,自己多练练就知道哪里该怎么用了。
7. : , ::
用 来写注释的,写注释一般用“::”或rem,而一个“:” 一般是用来作标记的,和goto 或call配合使用
8. !
在 开启延迟环境变量后,代替“%”,在后面讲延迟环境变量时细讲,其它用法貌似没有呵
9. */?
通 配符,“*” 代表任意字符,“?”代表任意一个字符。
10. ()
用 来表示一组命令。后面讲for 和if 的时候细讲
11. “”
用 来表示字符串,在CMD里面空格是用来分格两个字符串的,如果一个字符串里面有空格,就用“”引起来,就表示一个 字符串了,如:
dir “c:\program file”
‘’ 单引号在for里 面表示使用命令结果作为字符串,在for 里面在细讲。
12. ^
转 意思字符。CMD里 以上这么多符号,如果不想使用这些符号所表示的意思,而是只想使用符号自己,在符号前面加上^就 可以了。如:
echo hello & echo world
echo hello ^& echo world