2012-07-17 64 views
5

我正在尝试编写一个批处理文件,该文件根据对set变量执行的模运算的结果执行操作。但是,我似乎无法完全理解。如何在批处理中正确执行模数运算?

为了首先测试我的数学运算的语法,我一直试图让一个更简单的脚本来产生所需的结果。

:START 
SETLOCAL 
SET /P Input-Num="Input Number: " 
SET /A Input-Num=%Input-Num% %% 2 
ECHO %Input-Num% 
ENDLOCAL 
PAUSE 
:END 

如果我输入5,预期产量为1。但是,我收到消息说Missing operator.,然后它输出5

我在这里做错了什么?

+0

这是DOS还是别的?当我运行精确的样本时(在顶部添加了@ECHO OFF),我得到'1'没有'Missing operator' – LittleBobbyTables 2012-07-17 18:39:16

+1

从批处理文件开始,您的代码可以正常工作。如果你直接输入CMD,那么不要越过'%'。使用'%'而不是'%%'。 – vcsjones 2012-07-17 18:42:48

+0

@LittleBobbyTables首先,我喜欢你的屏幕名称。这是在Windows 7中的CMD。我已经更新了标签。 – Iszi 2012-07-17 18:51:32

回答

4

使用SET /P是你的问题,因为5不再被视为数值。您的示例如上所述按预期工作

+0

有没有办法使用'SET/P'(或类似操作的东西)*和*对变量执行数学运算? – Iszi 2012-07-17 20:11:42

+0

请参阅此链接:http://stackoverflow.com/a/684389/334849。他们使用'SET/P',然后在代码的后面为第二个变量做'SET/A'。 – LittleBobbyTables 2012-07-17 20:22:06

+0

现在试过了。仍然不起作用。现在我得到*两个*'运营商缺少错误。 – Iszi 2012-07-18 15:02:28