使用“set / a”命令时出现“missing operator”错误消息

时间:2010-12-07 02:28:54

标签: parameters batch-file set

好的,所以我已经完成了我的批处理程序“stringparsing.bat”,我遇到问题的最后一个错误就是当我使用下面的片段时说“缺少运算符”:

set /p linecount= 
cls
set foo=0
set linenumber=0

:lineset
set /a linenumber=%linenumber% +1
set /p line1= %linenumber% 
echo %line1% >> %name%.txt
set /a foo=%foo%+1
set /a line number=%linenumber%+1
IF %foo%==%linecount% goto MAIN123
goto lineset

更具体地说,我把它缩小到:

set /a linenumber=%linenumber% +1
    set /p line1= %linenumber%

我很确定我错误地使用了 set / p 命令...我想要做的是,做一个提示,要求用户输入它们是多少行文本要插入文本文件。然后创建一个循环,要求用户键入一些文本,然后将其发送到文本文件。但我想在提示符之前输入行号,以便它看起来像这样:

alt text

因此,当批处理文件要求第一行时,它会显示1:,当它要求第二行时,它会显示2:,依此类推。在每一行提示后,我得到“遗失的运算符”错误消息...顺便说一下,我需要使用这个scirpt让它工作:

set / p line1 =%linenumber%+ 1

但是为了在最后使用带有 +1 的命令,我是否必须添加 / a 参数以及 / p 参数?

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

一个简单的回显可以帮助: - )

在您的行设置/行号=%linenumber%+ 1 是空格亚麻布,这是一个问题。

另一方面,使用

是不必要的
set /a linenumber=%linenumber% +1

最好使用

set /a linenumber=linenumber+1
or
set /a linenumber+=1