Perdón. Aunque leí el texto, a la hora de reprogramar el bat que proponías no me di cuenta de que me estaba basando en la sustitución de la coma por la pipa. Es lo que se hace en el comando del DO del FOR de la rutina CAMCOMPIP (de cambiar coma por pipa, precisamente):
set c=%%x&echo !c:,=^|!>> kkk.txt
De modo que habría que cambiar la coma por un punto y coma. Además debería cambiarse el nombre de la rutina, por coherencia. Quedaría así:
@echo off
Setlocal EnableDelayedExpansion
set carpeta=d:\carpeta prueba
cd "%carpeta%"
for /f "tokens=* delims=" %%a in ('dir /b *.txt') do (call :campcompip "%%a")
goto :EOF
:campcompip
del /q kkk.txt>nul 2>&1
for /f "tokens=* delims=" %%x in ('type "%~1"') do (set c=%%x&echo !c:;=^|!>> kkk.txt)
copy /Y kkk.txt "%~n1_conv%~x1"
goto :EOF