1.@ 命令行回显屏蔽符 ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令本身,现在我们在ECHO OFF这个命令前加个@,就可以达到所有命令均不回显的要求。 该符号在批处理中的作用是关闭当前行命令的回显,也就是不显示执行的是什么命令,只显示命令的结果! 2.> 重定向符 将>之前的命令执行的结果输出到>之后指定的设备或文件中去,特定的文件或标准输出(stdout--默认为系统控制台),若文件中有数据则覆盖。 >> 重定向符 需要显示的数据追加到指定的输出文件之中,而不覆盖原来的内容。 < 输入重定向 将输入信息来源重定向为指定的设备或文件,系统默认接收键盘输入。 >&将一个句柄的输出写入到另一个句柄的输入中 <&刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中 常用句柄0、1、2,未定义句柄3-9 其中的1与2都是代表某个数据流输入输出的地址(NT CMD 称之为句柄,MSDOS称之为设备)。 句柄0:标准输入stdin,键盘输入 句柄1:标准输出stdout,输出到命令提示符窗口(console,代码为CON) 句柄2:标准错误stderr,输出到命令提示符窗口(console,代码为CON) 其中的stdin可被<重定向,stdout可被>、>>重定向,而stderr在DOS下不可直接重定向,只有通过ctty或其它命令将系统控制权转交给其它设备的方式,来间接完成。 注意:如果用在 set /a 语句中,则>表示分组,>>表示逻辑移位。Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--重定向) rem ===============重定向符>===================== rem 将当前文件的内容输出到指定的文件tb.txt而非控制台 type d:testbaktt.txt>d:testbaktb.txt rem 将特定的字符串"Hello China "(注意最后的空格)写入到指定的文件 echo Hello China >d:testbaktc.txt rem ===============重定向符>>==================== echo hello>d:testbaktd.txt echo world>>d:testbaktd.txt rem ===============重定向符<===================== rem 重新设定当前时间 echo -->d:testbakte.txt date <d:testbakte.txt del d:testbakte.txt rem ===============重定向符<===================== rem 如果e盘存在则将其下面的文件信息输出到te.txt 否则将错误信息输出到err.txt dir e: 1>d:testbakte.txt 2>d:testbakerr.txt @pause 3.| 命令管道符 管道命令,将|之前的命令的输出作为|之后的命令的输入。 格式:第一条命令 | 第二条命令 [| 第三条命令...]Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--管道命令) rem =================管道命令|=================== rem 将显示tom tom rm d:testbakt.txt echo tom>d:testbakt.txt echo neil>>d:testbakt.txt echo tom>>d:testbakt.txt echo neil>>d:testbakt.txt echo jerry>>d:testbakt.txt type d:testbakt.txt | find "tom" @pause 4.^ 转义字符 对特殊符号"<",">","&"的前导字符,在命令中他将以上3个符号的特殊功能去掉,仅仅把他们当成符号而不使用他们的特殊意义。 另外,此转义字符还可以用作续行符号。 Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--转义字符) rem =================转义字符^================== rem 用来转义 输出hello china > d:testbatt.txt echo hello china ^> d:testbatt.txt rem 用来续行行 输出结果为 hellochinaluchunli echo hello^ china^ luchunli @pause 5.& 组合命令 允许在一行中使用2个以上不同的命令,当第一个命令执行失败了,也不影响后边的命令执行。 语法:第一条命令 & 第二条命令 [& 第三条命令...] && 组合命令 用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令 语法:第一条命令 && 第二条命令 [&& 第三条命令...] 这个命令和上边的类似,但区别是,第一个命令失败时,后边的命令也不会执行。 || 组合命令 用这种方法可以同时执行多条命令,当一条命令失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令。 语法:第一条命令 || 第二条命令 [|| 第三条命令...] 提示:组合命令和重定向命令一起使用必须注意优先级 管道命令的优先级高于重定向命令,重定向命令的优先级高于组合命令。Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--组合命令) rem =================组合命令&================== dir d:testaa & dir d:testall rem k盘不存在 不影响命令执行 dir k: & dir d:testall rem =================组合命令&&================= rem k盘不存在 程序无法再执行 dir k: && dir d:testall rem =================组合命令||================= rem k盘不存在 执行错误 后面的dir才执行 dir k: || dir d:testall rem ========结合使用组合命令和重定向命令======== dir c: & dir d: > d:testbakt.txt rem 上述命令执行结果只有d盘下面的目录到t.txt去了 rem c盘下面的目录并没有按照预想的输出,而是打印在了控制台上 rem 修改成为,分别进行输出 dir c: > d:testbakt.txt && dir d: >> d:testbakt.txt @pause 6."" 双引号 双引号允许在字符串中包含空格。 cd "program files" cd progra~1 cd pro* 以上三种方法都可以进入program files这个目录 7., 逗号 逗号相当于空格,在某些情况下","可以用来当做空格使。 如:dir,c: 8.; 分号 当命令相同时,可以将不同目标用";"来隔离,但执行效果不变,如执行过程中发生错误,则返回错误报告。 如:dir c:;d:;e:;f:Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--分号) rem ==============分号;================= rem c d e f磁盘都存在,则正确执行,显示各磁盘下文件目录 dir c:;d:;e:;f: echo --------------------- rem z盘不存在则程序返回错误,对于d e f均不再执行 dir z:;d:;e:;f: @pause 9.% 批处理变量引导符 表示参数,参数是指在运行批处理文件时在文件名后加的字符串。引用变量用%var%,调用程序外部参数用%1至%9等等。 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*为命令行传递给批处理的参数 %0 批处理文件本身,包括完整的路径和扩展名 %1 第一个参数 %9 第九个参数 %* 从第一个参数开始的所有参数 参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。 %%批处理变量引导符。 set str=abc echo 变量 str 的值为%str% %也可以作为转义字符 echo %% 输出一个% echo %%%% 输出两个%Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--变量引导符) rem ==============变量引导符%=================== rem %0 代表当前文件本身 输出路径名和文件名 echo %0 rem 可以通过%0来拷贝自身(将当前文件的内容拷贝到tt.txt中去) copy %0 d:testbaktt.txt rem 可以通过设置参数来接受输入的变量,但是不能有空格 rem 如:set param = %1则取不到任何结果,只能为set param=%1 rem 批处理接受参数,如:test.bat tom is boy set param=%1 set param=%2 set param=%3 rem 输出 tom is boy echo %param% %param% %param% rem %只能接受%1到%9九个参数,若参数多云9个则无法接受,需使用shift命令,见shift命令讲解 rem % 与 %%的用法 rem =两端不可有空格 set str=abc echo str 的值是 %str% rem 以下分别输出一个% 两个% 三个% echo %% echo %%%% echo %%%%%% echo hello>d:testbakt.txt echo china>>d:testbakt.txt echo how>>d:testbakt.txt echo are>>d:testbakt.txt echo you>>d:testbakt.txt rem 依次输出hello china how are you for /f %%i in (d:testbakt.txt) do echo %%i rem 依次输出a b c for %%i in (a b c) do echo %%i @pause .() 括号 小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。 括号在for语句和if语句中常见,用来嵌套使用循环或条件语句,其实括号()也可以单独使用。 注意:这种多条命令被视为一条命令行时,如果其中有变量,就涉及到变量延迟的问题。 在for和if语句中属于语句格式的要求 例如: for %%i in (语句1) do(语句2) 在这条语句中,语句1必须用括号对包围,而语句2的括号对则可视情况予以抛弃或保留:如果语句2是单条语句或用&、&&、||等连接符号连接的多条语句,括号对可以抛弃,如果语句2是有逻辑先后关系的多条语句集合,则必须保留括号对,并且,多条语句必须断行书写。 if 条件 (语句1) else (语句2) 如果没有else部分,则语句1的括号对可有可无;如果有else部分,则语句1中的括号对必须保留,此时,语句2中的括号对保留与否,和上一点类似。 Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--括号) rem ==================括号()==================== rem 输出1 2 3 每个单独占一行 echo 1 & echo 2 & echo 3 echo -------------- ( echo 1 echo 2 echo 3 ) @pause .! 感叹号 在变量延迟问题中,用来表示变量,即%var%应该表示为!var!,见setlocal介绍。 在set /a 一元运算符中表示逻辑非 .: 冒号 任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。 有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别,表示该行是一个标签,它之后的内容是一个标签段。 如:test,则表示:test之下的内容是标签段,而test是这个标签段的名,可以用 goto test 、goto :test 跳转 到该标签段或用call :test 调用该子过程。 在 set 语句中:和~同时使用时,:起到截取字符串的功能。 假设 set str=abcde,那么,set var=%str:~0,1% 表示截取字符串abcde的第一个字符; 和=同时使用时,起到替换字符串的功能。 假设:set str=abc:de,那么,set var=%str:a=1% 表示把字符串abc:de中的a替换为1 无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto无法识别的标号,可以起到注释作用,所以 :: 常被用作注释符号,其实 :+ 也可起注释作用。Dos代码 @echo off @rem echo 关闭命令显示,@关闭echo off本身的显示 rem ==============设置标题title================= rem -使用该文件的名称作为标题 title 测试bat的文件(test.bat--冒号) rem ===================冒号:==================== rem 作为标签段 set num=3 set count=4 set /a flag=num+1 :: 关于判断相等若不加goto end则程序执行有问题 if %count%==%flag% goto begin goto end :begin echo This is begin :end echo This is end rem 截取/替换字符 set str=luchunli set var=%str:~2,7% rem 输出 chunli echo %var% set var=%str:u=r% rem 输出 lrchrnli echo %var% @pause .:: 注释符号 表示该行内容为注释内容。:: 是个无效的标签名,:加上空格同样可以起到注释的作用。 ::的功能和注释命令rem相同。 但是还有几点区别 (1)::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态。 (2)rem 注释语句中的某些命令符号如重定向符号和管道符号还是会执行,而如果用::来注释的时候,与::同处一行的所有命令或符号直接被命令解释器忽略掉,无形中提高了注释的兼容性和整个程序的执行效率,并且在众多的命令语句中更显得醒目,所以,注释语句推荐使用::的格式。 (3)rem 可以用于 config.sys 文件中。 Dos代码 rem ==============注释命令符号::================= rem 以下两句都不会执行 rem tt>d:testbakt.txt :: ttb>>d:testbakt.txt .~ 和冒号(:)一起使用时起到截取字符串的功能。 在set /a语句中时,它是一元运算符,表示将操作数按位取反。 例如,set /a num=~1的执行结果是-2,set /a num=~0的结果是-1 用在for语句中,表示增强for的功能,能够提取到更多的信息。 例如:在批处理文件的for语句中:%%~i表示去掉第一对外侧引号,%%~zi表示获取文件的大小(以字节为单位),%%~ni表示获取文件名,%%~xi表示获取扩展名(带点号)……它们可以组合使用,如%%~nxi表示获取文件名和后缀名。 .+ - * / 在 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 等同) .equ neq lss leq gtr geq 命令符号 含义 英文解释 EQU 等于 equal NEQ 不等于 not equal LSS 少于 less than LEQ 少于或等于 less than or equal GTR 大于 greater than GEQ 大于或等于 greater than or equalDos代码 rem ==========equ neq lss leq gtr geq=========== set str=tom set str=tom rem equ 输出equal if %str% equ %str% echo equal .点(.)和双点(..) 一个点代表当前目录;两个点代表上一级目录。 .问号(?) 匹配任意一个字符 在路径中代表任意一个统配符 紧跟在/之后表示获取帮助,如if /? 和 set /?
推荐整理分享Windows中的批处理的常用符号介绍(批处理在windows中的典型应用),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:windows批处理命令大全,window批处理,window批处理,windows的批处理是如何实现的,批处理在windows中的典型应用,批处理在windows中的典型应用,windows的批处理是如何实现的,windows批处理教程,内容如对您有帮助,希望把文章链接给更多的朋友!
Windows的服务功能初探介绍 在Windows中,对于一些不需要显示图形界面的应用程序,我们可以把它做成Windows服务,让它在后台运行,例如一些文件监视服务等。一台电脑中的Windows
Windows上几个常用的获取时间戳函数的效率比较 Windows上几个获取时间戳函数的效率比较今天无事,测试了下Windows上几个获取时间戳的函数效率机器性能:CPUIK未超频测试1亿次调用CRT的Time()函数耗
怎么给文件夹设密码 给文件夹设置密码的方法 步骤方法1、打开Windows资源管理器。2、右键单击要加密的文件或文件夹,然后单击属性。3、在常规选项卡上,单击高级。选中加密内容以便保护数据复