2011-01-05 32 views
8

Me gustaría establecer la salida estándar de un script por lotes para ir a un archivo. Me gustaría hacer esto dentro del script si es posible.¿Es posible redirigir la salida de un archivo por lotes dentro del script?

Nota: Yo no quiero hacer esto: foo.bat > StdOut.txt

me gustaría hacer algo dentro de la secuencia de comandos para redirigir la salida a un archivo
Por ejemplo:

foo. bate

:: Redirect standard output to StdOut.txt 
:: Insert batch code to do what I want here. 

Respuesta

14

Una forma de hacerlo es la siguiente. Use el comando call para ejecutar una etiqueta en el script. Editar Me di cuenta de que la primera versión que publiqué no parece funcionar en un indicador de cmd.exe (estaba usando TCC). El siguiente parece funcionar en ambos procesadores de comando:

@echo off 
call :testitout > t.tmp 
goto:eof 

:testitout 
echo Hi There 
echo Goodbye 
+0

Gracias, esto era exactamente lo que estaba buscando – SwDevMan81

+1

@ SwDevMan81, la razón por la que miraba se debe a que he querido hacer esto en el pasado y no sabía cómo. Pero su pregunta hizo que mi cerebro recordara que el comando de llamada podría llamar a una etiqueta en el archivo por lotes, lo que me hizo preguntarme si este truco funcionaría. Así que recién ahora lo aprendí. –

+0

Sí, definitivamente no habré pensado en esto. Parece que ambos aprendimos algo nuevo hoy :) – SwDevMan81

1

> es el estándar, lo que es más o menos pegado con ese; Sin embargo, se puede mover dentro del archivo por lotes:

foo.bat:

@echo off 
@echo Start File > StdOut.txt 
@dir >> StdOut.txt 
@echo End File >> StdOut.txt 
Cuestiones relacionadas