1 つのテキスト ファイルからデータを読み取り、それらのデータの合計を取得するバッチ ファイルがあります。ここに浮動小数点のデータがあります。したがって、次のようにバッチファイルを作成しました。
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 ループなしで使用すると、値を 2 番目の引数に直接渡すと正常に動作します。for ループを使用して txt ファイルから 1 つずつデータを取得すると、失敗します。関数を呼び出しますが、値が正しく返されません。
誰でもこれで私を助けることができますか?