Quiero agregar una dato "ej: ¿Perro" en varios archivos .txt desde un .bat (osea modificarlos)?

Primero me disculpo por no haber podido ingresar y darte respuesta, he llegado muy tarde del trabajo y en el tabajo no me permite ingresar a esta pagina.

Bueno, el datos es bueno, porque èste agrega a los archivos txt que esten en la misma carpeta el dato que quiero, pero necesito agregar esta cadena no a todos si no a algunos, osea que para esto tendrimos que identificar los archivos que van hacer modificados con la cadena y otra es tener una entrada que me de la posibilidad de agregar lo que quiera

Ej:

Voy a gregar el siguente animal, caracol

Pero no los voy agregar en los 30 archivos si no en 3 o 4 o 5 no importa en cuantos

Seria como decir

set /P animal =" caracol"

archivos a modificar = "este , estre, este otro, este")

for /f %%a in ('dir /b *.txt') do (echo %animal% >> %%a)

Asi recorre solo los que yo hay colocado en archivos a modificar de una forma puntual

Agregando el caracol en la lista que haya dentro de cada uno al final de la lista

ej:animales.txt

Perro

Gato

Vaca

Caracol.

¿No se si me hice entenerder?, estare mas atento a tu ayuda.

Y espero contar con tu apoyo para otra consulta que tengo apenas culminemos con esta.

1 Respuesta

Respuesta
1

No hay problema. Espero que esta vez puedas leer la respuesta con tiempo.

Creo que esto resuelve tu problema:

@echo off
set /p cadena= Cadena a agregar:
:bucle
if "%1" == "" goto :EOF
Echo %cadena% >> %1
Shift
goto :bucle

Salvas lo anterior con un nombre, por ejemplo AGREGA.BAT y lo invocas añadiendo el nombre de los archivos separados por espacio, por ejemplo:

AGREGA este.txt ese.txt aquel.txt

Si todos tienen la misma extensión (TXT por ejemplo) y quieres ahorrártela podrías poner

Echo %cadena% >> %1.txt

En lugar de lo indicado más arriba.

Si alguno de los nombres de los archivos tuvieran espacios tendrías que ponerlo entre comillas (esto no lo he probado).

Ya me dirás.

GGG

me funciono, pero hay un detalle, si el archivo .txt esta en blanco muy bien pero si ya tiene datos agrega el dato al lado del dato de la lista ej;

agregue la palabra prueba al los archivos y lo agrego

perro

gato

loroprueba

necesito es que en ves de quedar LOROPRUEBA quede en el otro renglón abajo del ultimo dato

ej:

loro

prueba

_____________________________anexo código______________

agregartext.bat

@echo off
set /p cadena= Cadena a agregar:
for /f %%a in ('dir /b *.txt') do (echo %cadena% >> %%a)
call agregar aves Animales objetos casa
exit

_________________

agregar.bat

@echo off
set /p cadena= Cadena a agregar:
:bucle
if "%1" == "" goto :EOF
echo %cadena% >> %1.txt
shift
goto :bucle

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas