我有一个批处理文件来从一个文本文件中读取数据并获取这些数据的总和。这里我有浮点数据。所以我创建了如下批处理文件:
set LOGFILE=Sample.txt
set /a total=0
setlocal EnableDelayedExpansion
for /f "tokens=1,2* delims=: " %%a in (%LOGFILE%) do (
call :IntAsFP a=%total%
echo %a%
call :IntAsFP b=%%b
echo %b%
set /a total=a+b
echo %total%
call :IntToFP total=%total% 3
echo %total%
)
goto :EOF
:IntAsFP Int=FP
set FP=%2
set %1=%FP:.=%
exit /B
:IntToFP FP=Int digits
set Int=%2
set %1=!Int:~0,-%3!.!Int:~-%3!
exit /B
在这个实际问题中,当我在没有 for 循环的情况下使用它时,这意味着如果我将值直接传递给第二个参数,它就可以正常工作。当我使用for循环从txt文件中一一获取数据时,它失败了:它调用了函数但没有正确返回值。
任何人都可以帮助我吗?