Mientras me contestas he investigado sobre la primera cuestión para darle una solución general y he supuesto que la respuesta a la segunda era mantener la sustitución a ciegas de la línea 37.
Este código podría funcionar aunque me temo que puede borrar las líneas en blanco del archivo original, config.ini.
@echo off
Setlocal EnableDelayedExpansion
for /f "tokens=1,2,3 delims=-/." %%a in ("%date%") do (
set dd=%%a&set mm=%%b&set yy=%%c)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
set /a j+=-1
set /a a=%j%+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
del kkk.txt
set nlin=1
for /f "tokens=*" %%i in (config.ini) do (
if not "!nlin!" == "37" echo %%i>> kkk.txt
if "!nlin!" == "37" echo LastBusinessDateExported=%dd%/%mm%/%yy%>>kkk.txt
set /a nlin=!nlin!+1
)
copy /y kkk.txt config.ini
Genera un archivo temporal kkk.txt con el que al final se reescribe el config.ini. Para las pruebas puedes eliminar (o comentar con "rem") la última línea.
Si te funciona pero la eliminación de las líneas en blanco te supone algún problema dímelo que creo que también se podría hacer algo para respetarlas.