BAT一句就是一行命令,按行执行
都只能整句生效,没有半句生效的?
隔断符:空格 或 其他符号
- 空格为默认的语句隔断符
- 所以注意不要随便打空格,会导致语句认为那是中断的,不符合你设计之意
- 不一定只是空格,但有时候也可以用其他特殊符号作为隔断符,比如 ; , = 也可以
- 但是 . + - 等一般是表示其他意义,不用来作隔断符
防空符:""
原理
- bat里,原则上并不需要""来标识字符串! 不需要!不需要!!!
- 但是bat里又默认 空格 为分隔符,所以一旦字符串里带空格,就会导致识别字符串出问题
- 所以,加引号的字符 "string" 主要是为了防止 string里带空格无法识别。
- 由于避免硬编码等原则,string很可能读取的内容是各种内容,带空格,所以,建议加上“”
字符串界定符
- 语法\" \"
- 不知道和"" 有没有本质区别?
- 有些情况下需要用 \" \"
字符串与比较相等==,实际是生成了新字符串
- 判断 if a == b 命令 时
- 可以给a 和 b都加对等的字符串
- 比如 if "a"=="b"
- 比如 if {a}=={b}
- 比如 if "a"=={b} 就不对
- 只要两边加的符号相同,想当于生成了2个新字符串,新字符串多余的部分相等,如果总体相等,那之前的相等
- 加符号为了防字符串内部有空格
转义符:^
^之后的符号,表示为本体意义
比如
> 重定向符
^> 就是>符号本身
注释符 :: rem
:: 注释符 //本行内容为注释,不执行
rem //本行内容为注释,不执行
隐藏显示符
@ //本行内容不显示
echo off
标号/标签符 :
有效标签
:数字字母开头 配合goto xx适用
:end
goto end
无效标签
:非数字字母开头
:: :+ := 都是注释的意思