elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Batch buscar y modificar una palabra de un txt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Batch buscar y modificar una palabra de un txt  (Leído 4,434 veces)
snpss

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Batch buscar y modificar una palabra de un txt
« en: 26 Septiembre 2019, 03:42 am »

Hola, quiero buscar y cambiar una palabra de un archivo txt y estoy entranpado. Lo primero que hize es almacenar todo el contenido del archivo txt en una variable de ahi busco la palabra y la reemplazo. Este es mi codigo pero tengo 2 problemas

@echo off
setlocal enabledelayedexpansion

REM [Este es el codigo para guardar el contenido del txt en la variable contenido]
set separador=/
set contenido=
for /f "delims=" %%a in (ejemplo1.txt) do (
  set linea=%%a
  set contenido=!contenido!!linea!
)

REM[vemos lo que contiene la variable]
echo
echo %contenido%
pause>nul

REM[cambiamos, guardamos(en otra variable) y leemos la variable]
echo.
set /p var=ingrese la palabra a buscar:
set /p var2=ingrese la palabra reemplazante:
set sustituir=%contenido:hola=hello%
echo %sustituir%

REM[borrando el archivo]
del ejemplo1.txt
echo archivo borrado
pause>nul

REM[recreamos el archivo con el cambio de palabra]
echo %sustituir% > ejemplo1.txt
echo archivo sustituido
pause>nul

1er problema: por ejemplo tengo el archivo ejemplo1.txt con el contenido "hola mundo". En mi codigo si pongo ( set sustituir=%contenido:hola=hello%)  si hace el cambio de "hola por hello", pero lo que quiero es que, yo ingrese la palabra a buscar y que yo mismo pueda poner la palabra reemplazante.

2do problema: he probado este codigo en texto mas largos(parrafos), al momento de guardar en un nuevo txt, lo guarda en una sola linea no respetando lo saltos de linea :(

Necesito de su sabiduria, muchas gracias.


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.176



Ver Perfil
Re: Batch buscar y modificar una palabra de un txt
« Respuesta #1 en: 26 Septiembre 2019, 05:07 am »

Saludos,

- Usa el estilo !linea:%busca%=%reemplaza%! para evaluar variables dentro de variables.

- Sale todo junto porque lo estás poniendo junto. Puedes directamente enviar la salida a otro .txt mediante Echo que y apone un salto de línea al final.

- A mí me está funcionando lo siguiente:

Código
  1. @Echo Off
  2. SetLocal EnableDelayedExpansion
  3.  
  4. Set /p busca="Ingrese la palabra a buscar: "
  5. Set /p reemplaza="Ingresa la para reemplazante: "
  6.  
  7. If Exist ejemplo2.txt Del ejemplo2.txt
  8.  
  9. For /f "delims=" %%A In (ejemplo1.txt) Do (
  10.  Set linea=%%A
  11.  Echo !linea:%busca%=%reemplaza%!>> ejemplo2.txt
  12. )
  13.  
  14. Pause


----

- Mmm.. GeSHi me falla con formato DOS  :xD, por eso lo dejo en Bash


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buscar palabra en Texto PHP
PHP
xtimox 2 9,305 Último mensaje 10 Abril 2009, 01:39 am
por EFEX
Buscar palabra dentro de un archivo « 1 2 »
Programación C/C++
Riki_89D 10 13,983 Último mensaje 11 Agosto 2010, 21:28 pm
por Riki_89D
como buscar palabra en un archivo de txt
Programación C/C++
AprendizPRG 1 12,222 Último mensaje 17 Junio 2012, 14:54 pm
por 0xDani
[BATCH] Buscar una palabra en especifico de un log.
Scripting
Vapirox 0 2,535 Último mensaje 21 Octubre 2016, 17:13 pm
por Vapirox
Buscar Palabra en una lista
Programación C/C++
Dato Vagabundo 5 3,263 Último mensaje 17 Enero 2017, 03:08 am
por francosmp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines