Comando/opción MS-DOS insertar linea en archivo .txt [Solucionado]

Iniciado por Forau, 8 Abril 2010, 19:15 PM

0 Miembros y 1 Visitante están viendo este tema.

Forau

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

LauBuru

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 (dos) [Seleccionar]

echo "cabecera" > ArchivoNuevo.txt
for /f "tokens=*" %%a in ('type mifichero.txt') do ( call :uno %%a)
del /f /q mifichero.txt
rename ArchivoNuevo.txt mifichero.txt
:uno
set pam = %*
echo %pam% >> ArchivoNuevo.txt
goto :EOF


69696969 start notepad.exe ::

Forau

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!!

leogtz

O si quieres hacerlo sin crear un nuevo archivo:

Código (bash) [Seleccionar]
@echo off
type "file.txt"
:code
set /p "cabecera=Cabecera : "
if not defined cabecera (goto:code)
setlocal enabledelayedexpansion;
set /a contador=0
for /f "tokens=*" %%_ in (file.txt) do (
set /a contador+=1
set "array[!contador!]=%%_";
)
:: Truncar el archivo:
echo !cabecera! > "file.txt"
:: Volcar el resto de las variables:
for /l %%_ in (1desde, 1incremento, !contador!hasta) do (
echo !array[%%_]! >> "file.txt"
)
type "file.txt"
set /p "=";


O podrìas revisar la documentación sobre edlin.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Forau

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!!


flony

leo en la parte de set "array[!contador!]=%%_" y este for for /l %%_ in (1desde, 1incremento, !contador!hasta) do ( echo !array[%%_]! me lo odrias explicar para entenderlo  :(
si un problema no tiene solucion entonces no es un problema...es algo inevitable