现在我差不多完成了Pick a line from text file and set it as variable的批处理脚本,现在我正在一个目标主机上进行测试。批处理文件存在小数问题,并从http://helloacm.com/math-example-using-windows-batch-script/找到了这个好的脚本。我几乎不明白它是如何工作的,但不知道如何改变最后回显的“echo%o%”的最终结果
示例:
以下是上面链接的代码,我将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“
,则需要更好如果此处已有批处理文件也是如此,那么也会喜欢使用。
答案 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"
可确保分配的值中不包含杂散尾随空格。