Perdona que haya tardado tanto pero he visto esta consulta ahora, con la nueva forma de trabajar en todoexpertos. Parece que hiciste la pregunta por tema, sin elegir experto, y en la forma antigua de trabajar solo me llegaban las preguntas hechas expresamente.
Si no he entendido mal el archivo config.txt contiene, entre otras cosas, "literales" del tipo xxxxx_AAAAMMDD.txt donde xxxxx puede ser cualquier cosa y AAAAMMDD tiene un formato de fecha, aunque eso no habría que comprobarlo (¿o sí?). Y quieres crear un BAT que te sustituya, dentro del archivo config.txt, la parte de fecha de esos literales por otro valor que se solicita por pantalla.
¿Es así?
No sé si a estas alturas ya habrás resuelto tu problema o si habrás decidido ignorar este camino (el de todoexpertos). Por si no fuera ese el caso esta es mi propuesta:
@echo off
Setlocal EnableDelayedExpansion
del kkk.txt
set /p fecha= Introduzca la fecha:
for /f "tokens=*" %%i in (config.txt) do (set linea=&call :revisar %%i)
goto :fin
:revisar
if "%1"=="" (echo !linea!>>kkk.txt&goto :EOF)
for /f "tokens=1,2,3 delims=_." %%x in ('echo %1 ^| findstr "_"') do (
set linea=!linea!%%x_%fecha%.%%z
shift
goto :revisar
)
set linea=!linea!%1
shift
goto :revisar
)
:Fin
rem copy /y kkk.txt config.txt
Tres cosas respecto al código anterior:
1. Es muy importante que la línea "set linea=!linea!%1 " tenga un espacio al final (será el separador con los otros campos de la misma línea). El Bloc de notas respeta esos espacios antes del fin de línea pero otros editores de texto los eliminan
2. Este código suprime las líneas en blanco. Si el archivo original (config.txt) las tuviera y fuera necesario mantenerlas me lo dices y lo investigo.
3. He comentado la línea final que sería la responsable de sustituir el config.txt original por el kkk.txt construido por el BAT. Si el contenido del kkk.txt satisface tus necesidades debería quitarse el "rem" para que se "completase el trabajo".
Ya me dirás.