批处理里面的符号详解

来自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

via

About tunpishuang

just 4 fun·····
This entry was posted in 未分类 and tagged . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>