我无法使用 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 /?