批处理中到底哪些情况要用引号啊?高手请指教

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:47:28
请具体举例说明,小弟资质愚钝
顺便解释一下Set /a "wm=(%%i+1)%%7"为什么不用引号就出错

一看就知你这句命令是套在for命令里面的.
bat会误将set命令中(%%i+1)中的反括号")"解释为"do("对应的反括号,所以会出错.应该""括起来.

打个比方吧,如果不用""括起来,这样就会出现上述情况:
for /l %%i in (1 1 8) do (
Set /a wm=(%%i+1)%%7
)
如果for命令是一行而成,没用"do(",也就没对应的")",就不会出错.
for /l %%i in (1 1 8) do Set /a wm=(%%i+1)%%7

如果for命令是分行写,两种方法:
用""括起来:"Set /a wm=(%%i+1)%%7"
将")"转义: Set /a wm=(%%i+1^)%%7

另外:
批处理一般地方都是有引号的,只是大部分命令中的引号可以省掉而已,在不知的情况下还是加上为妙.

这个意思是定义一个WM的变量

没出错啊,有无都不会出错啊

这个主要是在计算时含有空格,尤其是这个取余运算。
在批处理中,引号一般只有两种情况使用,一种是文件名或者路径含有空格,另一种则是字符串