需要帮助来编辑带有小数的批处理文件

时间:2014-03-11 04:08:25

标签: batch-file

现在我差不多完成了Pick a line from text file and set it as variable的批处理脚本,现在我正在一个目标主机上进行测试。批处理文件存在小数问题,并从http://helloacm.com/math-example-using-windows-batch-script/找到了这个好的脚本。我几乎不明白它是如何工作的,但不知道如何改变最后回显的“echo%o%”的最终结果

示例:

  • AllocatedBaseSize = 3931
  • CurrentUsage = 94
  • PeakUsage = 94

以下是上面链接的代码,我将C值更改为3:

setlocal

    set /a a=%CurrentUsage%
    set /a b=%AllocatedBaseSize%
    set /a c=3

    set /a d=a/b
    set o=%a%/%b%=%d%.


:work   
    set /a a=(a-d*b)*10
    if "%a%"=="0" goto clean_up
    set /a d=a/b
    set /a c=c-1
    if "%c%"=="0" goto clean_up
    set o=%o%%d%

    goto work

:clean_up
    echo %o%


endlocal

现在问题是脚本回显“96/3931 = 0.02”,我需要将结果显示为“CurrentUsagePct = 0.02”,如果我可以将其显示为“”CurrentUsagePct = 2.44“

,则需要更好

如果此处已有批处理文件也是如此,那么也会喜欢使用。

1 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL

SET /a currentusage=96
SET /a allocatedbasesize=3931


    set /a a=%CurrentUsage%
    set /a b=%AllocatedBaseSize%
    set /a c=3

    set /a d=a*10000/b
    IF "%d:~1%"=="" SET d=0%d%
    IF "%d:~2%"=="" SET d=0%d%
    set o=%a%/%b%=%d:~0,-2%.%d:~-2%%%
    ECHO %o%
    ECHO CurrentUsagePct=%d:~0,-2%.%d:~-2%%%
    SET "CurrentUsagePct=%d:~0,-2%.%d:~-2%%%"
    echo %CurrentUsagePct%

GOTO :eof

喜欢这个吗?

请注意"quoting the SET argument"可确保分配的值中不包含杂散尾随空格。