批处理文件:对十进制值的算术运算

时间:2011-03-06 06:58:18

标签: automation dos batch-file

我被迫使用DOS编写一些批处理脚本。如何对变量进行算术运算?如何重写最后一行?

FOR %%f IN (*.ogg) DO CALL :runsox "%%f"
del temp.ogg tmpfile
GOTO :EOF

:runsox
soxi -D %1>tmpfile

SET /P decvalue=<tmpfile * 1.2

更新:: 在bhu1st的帖子之后,我无法确切地知道如何将其应用到我的脚本中。但是GNU bash有同样的问题,不能对浮点数进行操作。在bash中解决此问题的方法是使用命令行计算器 bc 计算值。我下载了command line calculator。并在行中使用:

calcoo %decvalue%*1.2>tmpfile

3 个答案:

答案 0 :(得分:0)

试试这个:

SET /P tmpvalue=<tmpfile
SET /A decvalue=tmpvalue * 1.2

但即使这样,结果也会被截断。没有小数。

答案 1 :(得分:0)

我尝试使用浮点乘法运行简化算术表达式,解释器说失踪算子。我发现,批处理文件本身不支持浮点运算。

这可能会指向正确的方向: Floating point division in a dos batch

答案 2 :(得分:0)

FOR %%f IN (*.ogg) DO CALL :runsox "%%f"
del temp.ogg tmpfile
GOTO :EOF

:runsox
soxi -D %1>tmpfile
SET /P decvalue=<tmpfile
calc %decvalue%*1.2>tmpfile
SET /P decvalue=<tmpfile

丑陋,但有效。从http://download.cnet.com/Command-Line-Calculator/3000-2094_4-10897229.html

下载计算