Prog-Man, лучше ни то, ни другое. Арифметика пакетных файлов целочисленна, 32-разрядна (один бит отнесён под знак) и посему крайне ограничена диапазоном от -2,147,483,648 до 2,147,483,647.
Вам под какие цели? Можно, например, использовать mshta и VBScript/JScript внутри, наподобие:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFolder=E:\Песочница\0425
if exist "%sSourceFolder%\." (
for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size)}};catch (e){};close();"`
) do set sPrevFolderSize=%%i
echo Previously size [!sPrevFolderSize!].
rem Здесь начинается Ваш код
echo bla-bla-bla
echo bla-bla-bla
echo bla-bla-bla
rem Здесь заканчивается Ваш код
for /f "usebackq delims=" %%i in (
`@"%systemroot%\system32\mshta.exe" "javascript:try {with(new ActiveXObject('Scripting.FileSystemObject')) {GetStandardStream(1).Write(GetFolder('%sSourceFolder:\=\\%').Size - !sPrevFolderSize!)}};catch (e){};close();"`
) do set sDifference=%%i
echo Difference after working is [!sDifference!].
) else (
echo Can't find source folder [%sSourceFolder%].
exit /b 1
)
endlocal
exit /b 0
вообще не задействуя вычисления внутри самого пакетного файла.