我被迫使用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
答案 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
下载计算