Pregunta

¿Cómo tuvo un error estándar a un archivo en un archivo de lotes de DOS? Tuberías usando >> Solo las tuberías de la salida estándar y el error estándar aún va a la consola.

Detalles de mi problema:

Estoy ejecutando Winrar a través de la línea de comandos, en una copia de seguridad diaria automatizada. Y el siguiente ejemplo tiene la salida de Winrar, pero no la salida de error que es lo que más quiero, a winraroutput.txt:

RAR.exe a -esh -r "E:\backup.rar" "D:\*.*" >> winraroutput.txt

El problema es que a veces los archivos están en uso y cuando lo están quiero saber que se les perdió en el archivo y registrar esto en un .txt Archivo al lado de cada .rar Archivo en caso de que tengamos que volver. Los archivos faltantes se reemplazan fácilmente por reinstalar programas, por lo que no es gran cosa reemplazarlos, siempre que sepamos que están faltando. Por lo tanto, es solo información que sería genial saber, no necesaria, en el momento de la necesidad.

¿Cómo salgo solo la salida de error estándar al .txt Archivo y, si es posible, pero no es necesario, ¿deja la salida regular a la consola?

Puntos extra:

¡Puntos de bonificación si puede decirme cómo eliminar el archivo si está en blanco (sin errores)! Preguntó aquí: ¿Cómo detecto (y elimino) un archivo si está vacío usando un archivo por lotes de Windows?.

¿Fue útil?

Solución

Prueba esto:

   command.exe 2>file.txt

O si prefiere no ver ningún error, envíelo a NUL:

   command.exe 2>nul

Esto debería dejar std :: cout en la consola.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top