批处理文件:在文本文件中递增值时"Missing Operator"错误?



这是一个语法问题,这是一个与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.batcounter.txt位于同一目录中。

更改目录结构时,我会出现"缺失操作员"错误。

这是我将结构更改为 "C:foocounter.txt"时CMD返回的。

C:foo>for /F " delims==" %i in ("C:foocounter.txt") do set /A temp_counter=%i+1
C:foo>set /A temp_counter=C:foocounter.txt+1
Missing operator.
C:foo>echo 0  1>"C:foocounter.txt"

如果文件在不同目录中,我如何获得相同的代码?

有人还可以解释为什么发生错误吗?

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

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

相关内容