原帖地址:http://bathome.net/thread-1205-1-1.html
文章很不错,很有帮助,所以转到这里共大家学习。
--------------------------------------------------------------------------------------------------------------------------
1、@
一般在它之后紧跟一条命令或一条语句,则此命令或语句本身在执行的时候不会显示在屏幕上。请把下面的代码保存为test.cmd文件,然后运行,比较一下两条echo语句在屏幕上的输出差异:
- echo a
- @pause
- @echo b
- @pause
复制代码
执行结果如下:
C:\Documents and Settings\JM\桌面>echo a
a
请按任意键继续...
b
请按任意键继续...
2、%、%%
百分号用在不同的场合,有不同的含义:
① 当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%。把以下代码保存为批处理文件,运行后观察屏幕显示结果:
- @echo off
- set str=abc
- echo 变量 str 的值是: %str%
- pause
复制代码
在屏幕上将显示这样的结果:
另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10个数字,如%0、%1,请看演示代码:
- @echo off
- if defined str goto next
- set str=
- set /p str=请把文件拉到本窗口后回车:
- call "%~0" %str%
- pause
- exit
- :next
- cls
- echo 本批处理文件完整路径为:"%~0"
- echo 拖到本窗口的文件完整路径为:"%~1"
- goto :eof
复制代码
② 出现在 set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。
例如:在命令行窗口中,运行 set /a num=4%2 ,则结果将显示0,因为4除以2的余数为0;如果保存为批处理文件,则此语句将略有改变:
- @echo off
- set /a num=4%%2
- echo 4除以2的余数为 %num%
- pause
复制代码
③ 转义符号:如果要显示%本身时,需要在前面用%来转义。例如:
- @echo off
- echo 一个百分号:%%
- echo 两个百分号:%%%%
- echo 三个百分号:%%%%%%
- pause
复制代码
3、:、::
① 以:打头的单个的:表示该行是一个标签,它之后的内容是一个标签段,如:test,则表示:test之下的内容是标签段,而test是这个标签段的名,可以用 goto test 、goto :test 跳转到该标签段或用 call :test 调用该子过程;而连续两个冒号打头表示该行内容为注释内容,实际上,:: 是个无效的标签名,:加上空格同样可以起到注释的作用,此时,::的功能和注释命令rem相同;但是,rem 注释语句中的某些命令符号如重定向符号和管道符号还是会执行,而如果用::来注释的时候,与::同处一行的所有命令或符号直接被命令解释器忽略掉,无形中提高了注释的兼容性和整个程序的执行效率,并且在众多的命令语句中更显得醒目,所以,注释语句推荐使用::的格式。
② 在 set 语句中:和~同时使用时,: 起到截取字符串的功能。假设 set str=abcde,那么,set var=%str:~0,1% 表示截取字符串abcde的第一个字符;和=同时使用时,起到替换字符串的功能。假设:set str=abc:de,那么,set var=%str:a=1% 则表示把字符串abc:de中的a替换为1,set var=%str::=2% 则表示把字符串abc:de中的:替换为2;
4、~
① 用在 set 语句中,和:同时使用时,起到截取字符串的功能,请参考上一条的解释;
② 用在 set /a 语句中时,它是一元运算符号,表示将操作数字按位取反,例如,set /a num=~1的执行结果是-2,set /a num=~0的结果是-1
③ 用在for语句中,表示增强for的功能,能够提取到更多的信息。例如:在批处理文件的for语句中:%%~i表示去掉第一对外侧引号,%%~zi表示获取文件的大小(以字节为单位),%%~ni表示获取文件名,%%~xi表示获取扩展名(带点号)……它们可以组合使用,如%%~nxi表示获取文件名和后缀名。
5、>、>>
一般而言,>表示用新内容覆盖原文件内容,>>表示向原文件追加内容,此时,它们以重定向符号的身份出现;如果用在 set /a 语句中,则>表示分组,>>表示逻辑移位;
6、|
一般而言,它以管道符号的身份出现,表示把在它之前的命令或语句的执行结果作为在它之后的命令或语句的处理对象,简而言之,就是把它之前的输出作为它之后的输入,例如:echo abcd|findstr "b",表示把echo abcd的执行结果,作为findstr "b" 的执行对象,也就是在字符串abcd中查找b字符;如果test.txt中有abcd字符串,则该语句与 findstr "b" test.txt 具有同样的效果;
7、^
一般而言,^以转义字符的身份出现。因为在cmd环境中,有些字符具备特殊功能,如>、>>表示重定向,|表示管道,&、&&、||表示语句连接……它们都有特定的功能,如果需要把它们作为字符输出的话,echo >、echo | ……之类的写法就会出错——cmd解释器会把它们作为具有特殊功能的字符对待,而不会作为普通字符处理,这个时候,就需要对这些特殊字符做转义处理:在每个特殊字符前加上转义字符^,因此,要输出这些特殊字符,就需要用 echo ^>、echo ^|、echo ^|^|、echo ^^……之类的格式来处理;
8、&
一般而言,&表示两条命令或语句同时执行的意思。如 echo a&echo b,将在屏幕上同时显示a和b字符。当几条语句含义近似或作用相同且没有先后的顺序之别时,启用&符号连接这些语句将会增加程序的可读性;
9、&&、||
这是一对含义截然相反的命令符,&&表示如果它之前的语句成功执行,将执行它之后的语句,而||则表示如果它之前的语句执行失败,将执行它之后的语句;在某些场合,它们能替代 if……else…… 语句;例如:
- @echo off
- md test&&echo 成功创建文件夹test||echo 创建文件夹test失败
- pause
复制代码
效果等同于如下代码:
- @echo off
- md test
- if "%errorlevel%"=="0" (echo 成功创建文件夹test) else echo 创建文件夹test失败
- pause
复制代码
10、()
小括号对经常出现在for语句和if语句中,还有一些特定场合;在for和if语句中属于语句格式的要求,例如:
① for %%i in (语句1) do (语句2):在这条语句中,语句1必须用括号对包围,而语句2的括号对则可视情况予以抛弃或保留:如果语句2是单条语句或用&、&&、||等连接符号连接的多条语句,括号对可以抛弃,如果语句2是有逻辑先后关系的多条语句集合,则必须保留括号对,并且,多条语句必须断行书写;例如:
- @echo off
- for %%i in (a b c) do echo %%i&echo --------
- pause
复制代码
也可以改写为:
- @echo off
- for %%i in (a b c) do (
- echo %%i
- &echo --------
- )
- pause
复制代码
② if 条件 (语句1) else (语句2):如果没有else部分,则语句1的括号对可有可无;如果有else部分,则语句1中的括号对必须保留,此时,语句2中的括号对保留与否,和上一点类似。例如:
- @echo off
- if exist test.txt echo 当前目录下有test.txt
- pause
复制代码
- @echo off
- if exist test.txt (echo 当前目录下有test.txt) else echo 当前目录下没有test.txt
- pause
复制代码
- @echo off
- if exist test.txt (echo 当前目录下有test.txt) else (
- echo 当前目录下没有test.txt
- pause
- cls
- echo 即将创建test.txt文件
- cd.>test.txt&&echo 成功创建test.txt
- )
- pause
复制代码
③ 特定场合下使用括号对,不但可以使代码逻辑清晰,增强可读性,还可能会减少代码量。比如用echo语句构造多行文本内容的时候:
- @echo off
- (
- echo 第一行
- echo 第二行
- echo 第三行
- )>test.txt
- start test.txt
复制代码
如果不使用括号对的话,则需要使用如下代码:
- @echo off
- echo 第一行>test.txt
- echo 第二行>>test.txt
- echo 第三行>>test.txt
- start test.txt
复制代码
11、+、-、*、/
在 set /a 语句中,这些符号的含义分别为:加、减、乘、除。例如:set /a num=1+2-3*4/5。需要注意的是,这些运算符号遵循数学运算中的优先级顺序:先乘除后加减,有括号的先算括号,并且,直接忽略小数点,因此,刚才那个算式的结果是1而不是0或0.6。
另外,有可能会在代码中看到这样的写法:set /a num+=1、set /a num-=1、set /a num*=1 和 set /a num/=1,这些表示累加、累减、累乘、累除,步长都是1,展开后的完整写法为:set /a num=num+1、set /a num=num-1、set /a num=num*1 和 set /a num=num/1(set /a 语句中,变量引用可以忽略百分号对或感叹号对,set /a num=%num%+1 与 set /a num=num+1 等同)
12、equ、neq、lss、leq、gtr、geq
这几个命令符是if语句中常用到的数值比较符号,取自英文的关键字母,具体的含义为:
命令符号 含义 英文解释
EQU 等于 equal
NEQ 不等于 not equal
LSS 少于 less than
LEQ 少于或等于 less than or equal
GTR 大于 greater than
GEQ 大于或等于 greater than or equal
分享到:
相关推荐
"批处理常用符号详解.txt" 将涵盖批处理中的特殊字符,如`&`用于连接命令,`|`用于管道数据,`>`和`用于重定向输入和输出,以及`%var%`用于引用变量等。这些符号在编写复杂的批处理脚本时非常关键。 最后,"for命令...
第1章 批处理基础A.doc 第1章 批处理基础B.doc 第2章 DOS循环:for命令详解.doc 第3章 FOR命令中的变量.doc 第4章 批处理中的变量.doc 第5章 set命令详解.doc 第6章 if命令讲解.doc ...附——批处理常用符号详解.doc
DOS批处理命令大全详解 在这篇文章中,我们将对DOS批处理命令进行详细的解释和示例,希望能够帮助读者更好地理解和掌握DOS批处理命令。 一、Echo 命令 Echo 命令用于打开或关闭回显功能,或者显示消息。如果没有...
【DOS批处理脚本命令详解】 DOS批处理脚本是基于DOS操作系统的一种自动化命令执行工具,它允许用户将一系列DOS命令编写到一个文件中,形成一个批处理文件(扩展名为.BAT),然后一次性执行这些命令,极大地提高了...
### DOS批处理echo命令详解 #### 一、概述 DOS批处理命令是早期计算机操作系统中的一种重要工具,用于执行一系列预定义的操作。其中,`echo`命令是DOS批处理中最常用也是最基础的命令之一。通过使用`echo`命令,...
### DOS批处理命令详解 #### 一、简单批处理内部命令简介 在DOS环境下,批处理文件是一种脚本文件,通常使用`.bat`或`.cmd`作为扩展名。通过编写一系列命令,可以在Windows系统中自动化执行一些重复性的任务。下面...
批处理命令详解 批处理命令是DOS下的一种命令,它可以将多条命令组合在一起,自动执行批处理文件中的命令。批处理文件是无格式的文本文件,包含一条或多条命令,文件扩展名为.bat或.cmd。 一、简单批处理内部命令...
【批处理命令详解】 批处理命令是在DOS操作系统环境下,用于自动化执行一系列命令的脚本技术。这些命令可以帮助用户简化重复性任务,提高工作效率。以下是一些常用的DOS批处理命令及其详细说明: 1. **Echo命令** ...
1、常用批处理内部命令简介 * REM 和 :::REM命令用于注释,::是批处理文件中的注释符号。 * ECHO 和 @:ECHO命令用于输出信息,@符号用于屏蔽命令行回显。 * PAUSE:PAUSE命令用于暂停批处理的执行。 * ERRORLEVEL...
批处理文件CMD编程详解 批处理文件是一种在Windows操作系统中使用的脚本文件,它通过集成多条命令,简化了重复性的任务执行。这种文件通常扩展名为`.bat`或`.cmd`,并由Cmd.exe(命令提示符)解释执行。本文将深入...
以下是一些常用的批处理命令: 1. `echo`命令:用于打开或关闭命令行的回显功能,或显示自定义消息。`@echo off`常用于批处理开头以关闭命令回显,提高可读性。 2. `rem`命令:用于添加注释,不会被执行。`::`符号...
### 批处理教程详解 批处理,作为计算机操作系统中一种重要的自动化工具,通过将一系列预定义的命令集合在一个文本文件中,实现批量操作的高效执行。这种文本文件通常以`.bat`或`.cmd`作为扩展名,适用于Windows...
### BAT 批处理脚本教程知识点详解 #### 第一章 批处理基础 ##### 第一节 常用批处理内部命令简介 **批处理定义**:批处理文件是一种特殊的文本文件,它由一系列按顺序排列的命令组成,并且可以作为一个整体被...
### Windows批处理脚本编程详解 #### 批处理命令概览 **批处理脚本**是一种简单的编程方式,用于在Windows环境中自动化一系列任务。通过编写批处理文件(通常以`.bat`为扩展名),用户可以定义一系列命令,这些...
**第一节 常用批处理内部命令简介** 1. **REM 和 ::** - 用于在批处理脚本中添加注释,REM 是"remark"的缩写,::同样可以起到注释作用,但::更隐蔽,不会被某些批处理解析器识别。 2. **ECHO 和 @** - ECHO用于...
### 批处理基础及常用命令详解 #### 一、批处理概述 批处理是一种通过将一系列命令组织成一个脚本文件的方式来进行自动化操作的技术。这种技术广泛应用于Windows操作系统中,通常使用的文件扩展名为`.bat`或`.cmd`...