这是与crono:https://stackoverflow.com/a/40869/1783806
的答案相关的语法问题@echo off
for /f " delims==" %%i in (counter.txt) do set /A temp_counter= %%i+1
echo %temp_counter% > counter.txt
假设count.bat
和counter.txt
位于同一目录中。
更改目录结构时出现“缺少运算符”错误。
当我将结构更改为"C:\foo\counter.txt"
时,这就是CMD返回的内容:
C:\foo>for /F " delims==" %i in ("C:\foo\counter.txt") do set /A temp_counter=%i+1
C:\foo>set /A temp_counter=C:\foo\counter.txt+1
Missing operator.
C:\foo>echo 0 1>"C:\foo\counter.txt"
如果文件位于不同的目录中,如何使用相同的代码?
有人也可以解释错误发生的原因吗?
答案 0 :(得分:2)
在第一个代码中,您不引用IN()子句,因此将其视为文件。
在第二个代码中,您引用了IN()子句,因此它被视为字符串文字而不是文件。如果要在文件名周围使用引号,则必须将USEBACKQ
选项添加到FOR / F选项中。键入HELP FOR
以获取有关FOR命令的许多变体的更多信息。