2010-08-04 13 views
5

Quiero tener un archivo cmd con algo como:¿Es posible usar las redirecciones de salida desde un archivo cmd usando start?

:one 
start /wait (blabla1.exe -q -m 1>blabla1.log 2>&1) 

:two 
start /wait (blabla2.exe -q -m 1>blabla2.log 2>&1) 

donde quiero la salida de la aplicación blabla no la salida del comando de arranque.

¿Es posible tener las redirecciones "locales" dentro del comando de inicio?

¿Tengo que crear un cmd 1 línea que contiene
blabla1.exe -q -m 1>blabla1.log 2>&1
y pasarlo a la orden start?

Actualización: Necesito que termine el primero (blabla1.exe) antes de iniciar el segundo (blabla2.exe). Esa es la razón por la que se usa start /wait.

(Windows XP y superiores)

Respuesta

4

Teniendo en cuenta que está redirigiendo la salida a un archivo, ya la espera de que termine el proceso, es la ventana adicional iniciado por 'inicio' realmente necesaria? De hecho, si había alguna forma de redirigir la salida al usar el inicio, entonces las ventanas que aparecían ni siquiera tenían salida ... haciéndolas aún más insignificantes.

De lo contrario, simplemente elimine el "inicio/espera" y llame a los exes directamente.

Si es necesario ... entonces no estoy seguro.

ACTUALIZACIÓN: estoy bastante seguro de que simplemente eliminar el "inicio/espera" producirá el comportamiento que desea. Ver más abajo:

(Cree el siguiente archivo por lotes:. Foo.cmd

:one 
notepad.exe 
:two 
dir 

Tenga en cuenta que no se hagan eco de dir hasta que se cierre el bloc de notas

+0

Necesito la segunda para comenzar DESPUÉS de que la primera haya terminado. Así que supongo que necesito/wait. –

+0

@Francois - Derecha - en los archivos por lotes, cuando no utiliza inicio, los archivos por lotes no continúan hasta la próxima línea hasta que termina un cmd/exe. Solo cuando usa start, es necesario esperar/esperar hasta que el primero salga. Agregar secuencia de comandos de proceso por lotes de muestra para demostrar –

+0

Tiene razón, no necesito 'iniciar' en primer lugar, entonces no necesito'/wait'. Simplemente sin, funciona como lo pretendía. ¡Gracias! {¿por qué hacerlo simple cuando puedes hacerlo complicado? suspiro ;-)} –

13

Sí es posible redirigir la salida con el comando de inicio de espera mediante el modificador/B.

start /B /wait myprog.exe >> output.log 

Si necesita romper en que tendrá que utilizar Ctrl +Receso, Ctrl + C se ignorará. Espero que esto ayude.

+0

Esta debería ser la respuesta aceptada. –

Cuestiones relacionadas