Encontré la forma, así:
for %%F in (
total.txt
) do (
set /a DOLARES=0
for /f "usebackq delims=," %%a in ("%%F") do set /a DOLARES+=%%a
)
pero como dices, me da problema con los decimales...
Encontré la forma con este código de que haga operaciones y me acepte decimales:
:_calc
setlocal enabledelayedexpansion
if "%~1" EQU "add" set "sym=+"
if "%~1" EQU "sub" set "sym=-"
set "add_str=%~2"
set "add_str=!add_str:%sym%= !"
set/a hst=0,cnt=0,add=0
for %%_ in (%add_str%) do (
set/a dec[!cnt!]=0
for /f "tokens=2 delims=." %%. in ("%%_") do (
call :_strlen "%%."
set/a dec[!cnt!]=!errorlevel!
if !errorlevel! GTR !hst! set/a hst=!errorlevel!
)
set/a cnt+=1
)
set/a cnt=0
if "%sym%" EQU "-" for %%_ in (%add_str:.=%) do (
set/a pow=%hst%-%dec[0]%,n_b=%%_
for /l %%. in (1,1,!pow!) do set "n_b=!n_b!0"
set/a add+=!n_b!*2
goto :__op
)
:__op
for %%_ in (%add_str:.=%) do (
call set/a pow=%hst%-%%dec[!cnt!]%%,n_b=%%_
for /l %%. in (1,1,!pow!) do set "n_b=!n_b!0"
set/a add%sym%=!n_b!,cnt+=1
)
set "res=!add:~0,-%hst%!.!add:~-%hst%!"
if %hst% EQU 0 set "res=%res:~1%"
endlocal & set "%~3=%res%" & exit /b
:_strlen
setlocal
set/a cnt=0
for /f "tokens=* eol=" %%_ in (
'"cmd /u /c echo:%~1|more"'
) do set/a cnt+=1
endlocal & exit /b %cnt%
y dentro del batch para invocar el código para hacer cualquier operación se llamaría de la siguiente manera:
call:_calc add 2.3658+8.4102+14.61 var
echo:%var%
Lo que no sé es como incorporar eso el resultado del conteo de líneas...
Pero no sé como hacer el llamado para que me funcione con la sumatoria de las líneas...
Intenté esto, pero NO funciona, no logro comprender la lógica del código...
) do (
set /a DOLARES=0
for /f "usebackq delims=," %%a in ("%%F") do call:_calc add DOLARES+=%%a
)