Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: $pedrojo2704 en 22 Agosto 2012, 13:19 pm



Título: [Batch] Insertar un batch dentro de un batch que fabrique un .txt
Publicado por: $pedrojo2704 en 22 Agosto 2012, 13:19 pm
Hola a todos!

El título puede que sea demasiado lioso, pero era para hacer un pequeño resumen de la duda que me ha surgido.

Resulta que quiero hacer una especie de "instalador" en batch que copie varias líneas y la funcion de esas líneas es crear otro archivo batch que al abrirlo guarde en un .txt algunos datos, pongo un ejemplo:

Si yo quiero que "una frase" entre en un .txt basta con poner

Código:
echo una frase > texto.txt
echo dos frases >> texto.txt

Sí por ejemplo yo quiero que eso aparezca en un batch mostrandome ese mensaje, necesito poner:

Código:
echo echo una frase > file.bat
echo echo dos frases >> file.bat

Me comprendéis?

Pues bien, yo quiero hacer un batch que en lugar de mostrar una frase, escriba en otro archivo de texto .txt unos comandos, es decir, crear un batch que cree un batch que escriba un texto.

El código que he escrito, pero el cual no me funciona, es el siguiente (con esto seguro que ya comprendéis lo que quiero hacer)

Código:
echo echo ----------------------------------------------------------------------------------------- > logs.txt > file.bat
echo ver >> logs.txt >> file.bat
echo echo Día: %%date%% - Hora: %%time%% - Usuario: %%username%% - Equipo: %%computername%% >> logs.txt >> file.bat
echo echo --------------------------------------------------------------------------------------- >> logs.txt >> file.bat
echo exit >> file.bat


Con esto, al abrirlo, debe de crearme un batch que contenta lo siguiente:

Código:
echo ----------------------------------------------------------------------------------------- > logs.txt
ver >> logs.txt
echo Día: %date% - Hora: %time% - Usuario: %username% - Equipo: %computername% >> logs.txt
echo --------------------------------------------------------------------------------------- >> logs.txt
exit

Espero, que tras todo esto me hayais comprendido, pues bien, al hacerlo tal y como lo he puesto, cuando me crea el último batch (el que debería aparecer ">> logs.txt" no aparece, es decir, desaparecen las dos dejándome solamente el texto que se muestra en la pantalla pero no se guarda en el .txt.

Si alguien me ha entendido (pido disculpas por no saber explicarme), espero que pueda ayudarme a solucionar mi problema.

Saludos!


Título: Re: [Batch] Insertar un batch dentro de un batch que fabrique un .txt
Publicado por: Eleкtro en 22 Agosto 2012, 19:25 pm
Hola, El problema está aquí, Ya que no puedes rebidireccionar así:  (>> archivo1 >> archivo2)

Solo tienes que escapar los primeros operadores (>>) para poder imprimirlos:

Código
  1. echo echo ----------------------------------------------------------------------------------------- ^> logs.txt > file.bat
  2. echo ver ^>^> logs.txt >> file.bat
  3. echo echo Día: %%date%% - Hora: %%time%% - Usuario: %%username%% - Equipo: %%computername%% ^>^> logs.txt >> file.bat
  4. echo echo --------------------------------------------------------------------------------------- ^>^> logs.txt >> file.bat
  5. echo exit >> file.bat

Saludos


Título: Re: [Batch] Insertar un batch dentro de un batch que fabrique un .txt
Publicado por: $pedrojo2704 en 23 Agosto 2012, 10:08 am
Vaya, no tenía ni idea de eso, de los errores se aprende :) muchas gracias por la respuesta, justo lo que necesitaba ;)