No me queda muy claro que fue lo que intentaste y no funcionó. Te aseguro que este tipo de conversiones funcionan por lo que si alguna vez parecen no funcionar siempre hay algún error, de sintaxis o de concepto. No te rindas.
Entiendo, ahora, que no solo quieres convertir los tabuladores en ";" sino que también quieres que cuando haya más de un espacio se convierta en uno solo. Te sugiero que pruebes el BAT siguiente:
@echo off
Setlocal EnableDelayedExpansion
set carpeta=d:\carpeta prueba
cd "%carpeta%"
for /f "tokens=* delims=" %%a in ('dir /b *.txt') do (call :camtabpcom "%%a")
goto :EOF
:camtabpcom
del /q kkk.txt>nul 2>&1
for /f "tokens=* delims=" %%x in ('type "%~1"') do (
set c=%%x
set c=!c: =;!
set c=!c: = !
set c=!c: = !
set c=!c: = !
Echo !c!>> kkk.txt
)
copy /Y kkk.txt "%~n1_conv%~x1"
goto :EOF
Asegúrate de que el set que incluye el "=;" tenga un tabulador delante del igual. Los otros convierten 4, 3, y 2 espacios, respectivamente, en un solo espacio y deben ir en ese orden.
Si aún así no te funciona como quieres sería bueno que me pasaras un archivo de ejemplo para ver si encuentro una razón.