为什么我的批处理脚本会说“缺少运算符”?

时间:2013-05-29 13:13:46

标签: windows batch-file operator-keyword

我正在使用这个脚本:

@echo on
setlocal ENABLEDELAYEDEXPANSION
set vidx=0
for /F "tokens=*" %%A in (C:\Users\Diana\Desktop\names.txt) do (
    SET /A vidx=!vidx! + 1
    snmpwalk -v 2c -c root %%A .1.3.6.1.2.1.25.3.3.1.2 > C:\Users\Diana\Desktop\cpu.txt
    snmpwalk -v 2c -c root %%A .1.3.6.1.2.1.25.5.1.1.2 > C:\Users\Diana\Desktop\ramvid.txt
    snmpwalk -v 2c -c root %%A .1.3.6.1.2.1.25.2.2 > C:\Users\Diana\Desktop\ram.txt
)

FOR /F "tokens=4" %%B IN (C:\Users\Diana\Desktop\ram.txt) DO echo %%B >> C:\Users\Diana\Desktop\ramfiltruotas.txt
FOR /F "tokens=4" %%B IN (C:\Users\Diana\Desktop\cpu.txt) DO echo %%B >> C:\Users\Diana\Desktop\cpufiltruotas.txt
FOR /F "tokens=4" %%B IN (C:\Users\Diana\Desktop\ramvid.txt) DO echo %%B >> C:\Users\Diana\Desktop\ramvidfiltruotas.txt

for /F %%a in (C:\Users\Diana\Desktop\ramvidfiltruotas.txt) do set /a c+=%%a echo %c% >> C:\Users\Diana\Desktop\naujas.txt

我正在尝试计算文件ramvidfiltruotas.txt中的数字总和,但是当我启动脚本时,它向我展示了很多这样的数据:

C:\Users\Diana>set /a c+=3472 echo   1>>C:\Users\Diana\Desktop\naujas.txt
Missing operator.

C:\Users\Diana>set /a c+=2616 echo   1>>C:\Users\Diana\Desktop\naujas.txt
Missing operator.

也许有人可以帮我在这里找到问题?

顺便说一下,这个脚本适用于其他计算机。

1 个答案:

答案 0 :(得分:1)

您有两个命令一起运行。将setecho分隔在不同的行上,或者将它们与&符号&连接起来:

set /a c+=2616 & echo   1>>C:\Users\Diana\Desktop\naujas.txt