Disculpa me puedes dar una mano con un archivo .bat

Quiero cambiar una palabra por una frase usando un .bat de la siguiente manera.

En un archivo .txt hay lo siguiente

Ana

Maria

Juan

Pedro

Quiero cambiar la palabra juan por un texto por ejemplo

*********

Hola

Buen

Dia

*******

Queriendo tener un resultado asi

Ana

Maria

*********

Hola

Buen

Dia

*******

Pedro

2 Respuestas

Respuesta
1

He probado con el siguiente código pero solo reemplaza una palabra con otra.

@echo off
Setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type texto.txt') do (
set linea=%%x
set linea=!linea:juan=hola!
call :show !linea!
)
Goto:eof
:Show
echo %* >>texto2.txt
Goto:eof

A lo que quiero llegar es cambiar una labra con un texto que contenga saltos de línea de la siguiente manera

********

Hola

Como

Están

Bien

******

Respuesta
1

Me imagino que estás buscando algo más genérico pero creo que podemos empezar por algo ajustado estrictamente a tu ejemplo. Podría ser esto:

@echo off
Setlocal enabledelayedexpansion
del /q texto2.txt
for /f "tokens=* delims=" %%x in ('type texto.txt') do (
set linea=%%x
if not "!linea!"=="Juan" echo !linea!>>texto2.txt
if "!linea!"=="Juan" (
   echo ******>>texto2.txt
   echo Hola>>texto2.txt
   echo Como>>texto2.txt
   echo Estan>>texto2.txt
   echo ******>>texto2.txt
   )
)

Mil disculpas por mi ignorancia en este lenguaje tengo un problema con el código que as subido como ayuda... EL problema es el siguiente al momento que lo ejecuto me copia lo mismo que se encuentra dentro del texto.txt al texto2.txt no me reemplaza Juan con

 ******
Hola
Como
Estan
******

Es importante que las mayúsculas y minúsculas sean como se espera. Intenta reproducir lo que aparece en el pantallazo que adjunto para ver si hay alguna explicación:

He llamado al bat l30n.bat y he borrado previamente el archivo texto2.txt. Tras la ejecución del bat puedes ver que contiene lo que se esperaba.

Si no entiendes algo dímelo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas