BATCH SET 无法使用除法运算符

BATCH SET 无法使用除法运算符

我无法使用 SET 命令提供的除法运算符进行除法。

设置/A 216/18

设置/A div=216/18

回显 %div%

虽然这应该可以工作,并且它在命令提示符窗口中也可以工作,但是当通过批处理脚本使用时,它会给出空白输出。

喜欢

ECHO 已打开。

怎么了?

答案1

extenstions如果您有残疾,则可能会发生这种情况。您可以查看setlocal /?cmd /?了解有关的更多信息extensions

但具体set /?规定如下:

If Command Extensions are enabled SET changes as follows:  
...
Two new switches have been added to the SET command:  
  SET /A expression  
  SET /P variable=[promptString]

因此没有extensions这个/A就不行。

您可以将setlocal-line 添加到批处理文件的顶部:

setlocal enableextensions enabledelayedexpansion
SET /A 216/18
SET /A div=216/18
ECHO %div%

答案2

抱歉,但是我添加了这些行,但 dos bat 文件仍然无法进行除法。

但是,我承认阅读有关该主题的帮助毫无意义。

下面是蝙蝠代码,有什么错误?:

:DOS 无法执行除法 setlocal enableextensions enabledelayedexpansion

设置小时2记录=13 设置分钟2记录=05 设置曲目长度=46800

设置 /a 秒 = %hours2record% * 3600 + %minutes2record% * 60 echo 到目前为止一切顺利。秒为 %seconds% 暂停

::SET /A trackdiv=%seconds%/46800 不起作用 ::SET /A trackdiv=468000/46800 起作用 ::SET /A trackdiv=seconds/46800 也不起作用 SET /A %seconds%/%tracklength% SET /A trackdiv=%seconds%/%tracklength% & 不起作用

echo trackdiv 变量计算为 %trackdiv% 。这是错误的!47100/46800 不等于 1!愚蠢的 dos!暂停

setlocal /?暂停 cmd /?

相关内容