2011-03-06 57 views
0

我不得不使用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 
+1

什麼soxi轉儲到tmpfile? – bhu1st 2011-03-06 07:15:07

回答

0

試試這個:

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

但即便如此,其結果將被截斷。沒有小數。

+0

你嘗試過嗎? set/a decvalue = tmpvalue * 1.2表示 - 在Dos 6.1上缺少運算符,您可以嘗試像set/a x = 2 * 2.2這樣的簡單操作來查看 – bhu1st 2011-03-06 07:29:48

0

我試着用浮點乘法運行簡化的算術表達式,解釋器說失蹤運算符。我發現,批處理文件不支持浮點運算。

這可能意味着你正確的方向: Floating point division in a dos batch