【BAT批处理】bat批量处理脚本特殊符号
【BAT批处理】bat批量处理脚本特殊符号
八、特殊符号
1、@-隐藏命令
开启了echo off能够起到隐藏命令的效果,而@同样能起到这个效果,只不过需要在每条命令前面都加一个...
2、&&,||-判断
还记得用if errorlevel来判断命令成功与否吗?&&和||同样能起到这个效果,&&表示前面的命令成功以后执行后面的命令,||反之
例:
@echo;>>%SystemRoot%\system32\test.txt&&echo 成功!||echo 失败 @pause>nul
3、|-管道
将前一个命令执行的结果发送给后一个命令
例:
@echo 你好|find "你" @tasklist|find "exe"
4、&-分行符
可以把几个命令写在同一行
例:
@echo 123&@echo 456 pause>nul
5、^-分行与转义符
1)分行
可以把一个命令写成多行哦
例:
@echo 1^ 2^ 3^ 4 @pause>nul
复制上面的命令,执行结果是什么?这就是分行符的作用
2)转义
当试图输出一个&的时候,会发现输出不了,因为它被当成分行符处理了
这时就要请出转义符^了,它可以剥夺后面第一个符号的特殊地位,变为普通符号。
例:
@echo ^& @pause>nul
这样就输出了&
另外,当存在a变量(前面set /p a=或set a=给a赋值了)想要输出%a%,一是可以用转义符^,还可以:
echo %%a%%
这样既可将两个百分号识别为一个,起到了转义的作用
还有些特殊情况不需要转义:
echo "0000|000"
用引号括起来可以起到一定的转义的作用,包括set "a=a的值"等
但特别特殊的情况比如获取%1时存在转义符很难处理,没办法正常引用
3)*,?-通配符
什么叫通配符?举个例子,
*.jpg表示所有的jpg,*表示所有文件。那"?"有什么用,*可以为任意字符,但只表示一个字符,比如?.jpg只表示文件名只有一个的jpg文件,比如1.jpg,比.jpg这类。
4)()-括起来
括起来的语句是一个整体
5)>,>>,<-重定向
注意:在重定向符号 ">" 以及 ">>" 前必须添加空格以防万一,因为Batch具有不唯一性所以在很多时候不加空格也能正常使用。但是日常使用中必须添加空格否则失败的几率很大,要么是无法创建/输出,要么文件是空的。
请不要使用不添加空格的不正确用法!
echo 123 >>one.txt
可以输出123追加到one.txt中
echo 123 >one.txt
可以输出123覆盖one.txt中原先的内容
nul是一个系统保留字,所以>nul不会输出到任何文件,可以起到隐藏命令执行结果的效果
2 >nul可以起到隐藏命令失败执行结果的效果
<可以从文件中读取数据到某个命令中,不过这个命令得等待用户输入
例:
@echo off echo 123 >>00.txt set /p num=<00.txt echo 数字是%num% pause>nul
有些命令不止需要一个>nul,如要连接,需要:>nul 2>nul以此类推
如果前面有数字,需要添加空格
ping >nul 2>nul =1>nul 2>nul ping =ping >nul 2>&1.... X>&2 X>&2 X>&3等
nul指空设备,简单来说就是隐藏输出。
2>&1 3>&2 可以一直接下去,&1 &2就是引用第一个、第二个等
> 创建一个文件
>> 追加到一个文件后面
@ 前缀字符.表示执行时本行在cmd里面不显示, 可以使用 echo off关闭显示
^ 对特殊符号( > < &)的前导字符. 第一个只是显示aaa 第二个输出文件bbb
() 包含命令
, 和空格一样的缺省分隔符号.
; 注释,表示后面为注释
: 标号作用
|管道操作
& Usage:第一条命令 & 第二条命令 [& 第三条命令...] 用这种方法可以同时执行多条命令,而不管命令是否执行成功
&& Usage:第一条命令 && 第二条命令 [&& 第三条命令...]当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令;
|| Usage:第一条命令 || 第二条命令 [|| 第三条命令...]当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;
eol=c - 指一个行注释字符的结尾(就一个)
skip=n - 指在文件开始时忽略的行数。
delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。
== - 等于
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
选择开关/i则不区分字符串大小写;选择not项,则对判断结果进行逻辑非。
声明:本网站为“个人非营利性”网站,仅是博主与热心网友收集整理提供的经验记录和学习内容!本站文章图片来源于网络和AI,如有问题,可联系本站删除。
网站初心:一些棘手的、偏门的问题,能比较方便地在一个网站上查询、解决。
