teams - Windows Batch Script: redirigir TODA la salida a un archivo
pida a su administrador de ti que le conceda acceso a microsoft teams (2)
Estoy ejecutando varios puntos de referencia de Java y me gustaría archivar los resultados. Ejecuto el punto de referencia (dacapo) de esta manera:
C:/VM/jre/bin/java -jar C:/benchmarks/dacapo-9.12-bach.jar %arg1% > %time::=%
Paso el tipo de punto de referencia en un parámetro, eso es% arg1%.
Puede ver que estoy redirigiendo la salida a un archivo de texto. Desafortunadamente, la primera y la última línea de la salida todavía se imprimen en la consola y no en el archivo de texto:
===== DaCapo 9.12 luindex starting =====
===== DaCapo 9.12 luindex PASSED in 2000 msec =====
Especialmente la última línea sería importante tener en el archivo de texto :)
¿Hay algún truco para forzar este comportamiento?
Agregue 2> y 1 a su comando:
C:/VM/jre/bin/java -jar C:/benchmarks/dacapo-9.12-bach.jar %arg1% 2>&1 > %time::=%
Esto redireccionará STDERR a STDOUT, que luego se redirigirá a su archivo de texto.
Debe redirigir STDOUT y STDERR .
command > logfile 2>&1
STDIN es el descriptor de archivo # 0, STDOUT es el descriptor de archivo n. ° 1 y STDERR es el descriptor de archivo n. ° 2.
Así como "comando> archivo" redirige STDOUT a un archivo, también puede redirigir descriptores de archivos arbitrarios entre sí. El operador >&
redirige entre los descriptores de archivos. Por lo tanto, 2 >& 1
redirige toda la salida de STDERR a STDOUT .
Además, tenga cuidado de agregar 2>&1
al final de la instrucción porque en Windows, el orden de redirección es importante ya que el command 2>&1 > logfile
producirá un archivo vacío, como Dawid agregó en los comentarios.