批量文件:增加文本文件中的值时出现“缺少运算符”错误?

时间:2012-11-01 15:59:27

标签: windows batch-file cmd text-files directory-structure

这是与cronohttps://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.batcounter.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"

如果文件位于不同的目录中,如何使用相同的代码?

有人也可以解释错误发生的原因吗?

1 个答案:

答案 0 :(得分:2)

在第一个代码中,您不引用IN()子句,因此将其视为文件。

在第二个代码中,您引用了IN()子句,因此它被视为字符串文字而不是文件。如果要在文件名周围使用引号,则必须将USEBACKQ选项添加到FOR / F选项中。键入HELP FOR以获取有关FOR命令的许多变体的更多信息。