Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Forau en 8 Abril 2010, 19:15 pm



Título: Comando/opción MS-DOS insertar linea en archivo .txt [Solucionado]
Publicado por: Forau en 8 Abril 2010, 19:15 pm
Hola Buenas!

Tengo un ejercicio de clase que me esta comiendo la cabeza y me da que finalmente es una chorrada, pero ahí estoy ignarante de mi..
Se trata simplemente de hacer un .bat que modifique un archivo de texto (ya creado) añadiendo al principio una cabecera con la fecha y otros datos. He probado con:

"echo bla bla bla >> mifichero.txt"

Pero claro, el texto te lo añade al final del fichero. Me gustaría saber si hay alguna opción para agregarlo en la cabecera!!

Gracias por adelantado! 1 saludo


Título: Re: Comando/opción MS-DOS insertar linea en archivo .txt
Publicado por: LauBuru en 8 Abril 2010, 21:45 pm
Mu facil creas un archivo nuevo con la cabecera que tu quieras y despues añades el contenido del archivo anterior y luego pegas el cambiazo ^^

Código
  1. echo "cabecera" > ArchivoNuevo.txt
  2. for /f "tokens=*" %%a in ('type mifichero.txt') do ( call :uno %%a)
  3. del /f /q mifichero.txt
  4. rename ArchivoNuevo.txt mifichero.txt
  5. :uno
  6. set pam = %*
  7. echo %pam% >> ArchivoNuevo.txt
  8. goto :EOF
  9.  



Título: Re: Comando/opción MS-DOS insertar linea en archivo .txt
Publicado por: Forau en 8 Abril 2010, 22:03 pm
o_O


Pense que había un método mas sencillo (para mí digo ^^), pero veo que me qda muuucho por aprender....jajaja.
Si que había pensado en este apaño, pero no sabía como hacerlo, de hecho alguna cosilla me baila por ahí, pero asi voy viendo lo que me espera por venir en el curso..

Graciaaaaassss y 1 saludooo!!


Título: Re: Comando/opción MS-DOS insertar linea en archivo .txt
Publicado por: leogtz en 8 Abril 2010, 22:35 pm
O si quieres hacerlo sin crear un nuevo archivo:

Código
  1. @echo off
  2. type "file.txt"
  3. :code
  4. set /p "cabecera=Cabecera : "
  5. if not defined cabecera (goto:code)
  6. setlocal enabledelayedexpansion;
  7. set /a contador=0
  8. for /f "tokens=*" %%_ in (file.txt) do (
  9. set /a contador+=1
  10. set "array[!contador!]=%%_";
  11. )
  12. :: Truncar el archivo:
  13. echo !cabecera! > "file.txt"
  14. :: Volcar el resto de las variables:
  15. for /l %%_ in (1desde, 1incremento, !contador!hasta) do (
  16. echo !array[%%_]! >> "file.txt"
  17. )
  18. type "file.txt"
  19. set /p "=";
  20.  

O podrìas revisar la documentación sobre edlin.


Título: Re: Comando/opción MS-DOS insertar linea en archivo .txt
Publicado por: Forau en 8 Abril 2010, 23:20 pm
De nuevo o_O...jaja

Muchas gracias por la aclaración, ya tengo trabajo para ir analizando y entendiendo..

Buen trabajo con la pagina, con gente así, da gusto!!

1 saludoo!!



Título: Re: Comando/opción MS-DOS insertar linea en archivo .txt [Solucionado]
Publicado por: flony en 7 Junio 2010, 17:22 pm
leo en la parte de
Código:
set "array[!contador!]=%%_"
y este for
Código:
for /l %%_ in (1desde, 1incremento, !contador!hasta) do (	echo !array[%%_]!
me lo odrias explicar para entenderlo  :(