Set / A和引用的批处理文件技术

时间:2014-09-16 18:24:31

标签: batch-file coding-style set quotes

如果我的脚本正在进行计算,我总是想知道如何以及何时使用引号。例如,

Set /A exp=%some%+(!calculation!-0)

我知道,如果该行使用括号,并且我在IF块内,我应该使用

Set /A exp="%some%+(!calculation!-0)"

引号只是在等于之后的部分。

除此之外,引用变量名称到行尾

Set /A "exp=%some%+(!calculation!-0)"

似乎也有效。

我想知道,是否有适当的"使用SET /A的方法?批处理脚本的正确/最佳技术是什么?我什么时候应该使用报价?除非有错误,否则它们大多是可选的?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果你在没有/a的情况下尝试它会更有意义:如果你在"之后使用=,它将成为变量的一部分;如果你在=之前使用它,它会分隔表达式(通常用于避免意外或在变量中插入预期的尾随空格)

C:\>set x="1+3"
C:\>set x
x="1+3"

C:\>set "x=2+5"
C:\>set x
x=2+5

C:\>set x=text  
C:\>echo -%x%-
-text  -

C:\>set "x=text"  
C:\>echo -%x%-
-text-

(请注意,set x=textset "x=text"之后有两个“非预期”空格

/a,qoutes被剥离(/a从“好老DOS”添加到前set命令中