2011-09-15 10 views
8

Próbuję uruchomić kilka procesów w tle z pliku wsadowego i mieć wyjście skierowane do pliku. Czy można to zrobić w systemie Windows? To jest to, co próbowałem, ale w końcu kieruje wyjście programu startowego, a nie proces w tle.Procesy tła w partii z przekierowanym wyjściem

start myapp.exe > myapp.out 2>&1 
+1

Nawiasem mówiąc, to * nie * DOS. –

Odpowiedz

6

Myślę, że jedyną szansą jest stworzenie jednego pliku wsadowego dla każdego exe, który chcesz uruchomić. Wewnątrz pliku wsadowego można przekierować dane wyjściowe. Główny plik wsadowy "uruchamia" plik wsadowy, a nie bezpośrednio exe.

Trzeba tylko to polecenie exit na końcu każdego pliku wsadowym:

start_myapp.cmd zawiera następujące elementy:

myapp.exe > myapp.out 2>&1 
exit 

następnie można uruchomić

start start_myapp.cmd 

i wyjście zostanie przekierowany

+0

+1, odpowiedziałeś 10 sekund szybciej ode mnie ... – jeb

+0

Właściwie nie potrzebujesz pliku pomocnika :-) Zobacz [moja odpowiedź] (http://stackoverflow.com/a/11712561/1012053) – dbenham

9

Właściwie to jest całkiem proste bez użycia pliku wsadowego pomocnika. Trzeba tylko uruchomić aplikację za pomocą cmd.exe zamiast tego i unikać znaków specjalnych, aby przejść do cmd.exe.

Prawdopodobnie nie chcesz widzieć dodatkowego okna konsoli, więc użyj opcji START/B.

start /b "" cmd /c myapp.exe ^>myapp.out 2^>^&1 

Każdy rozpoczęty proces musi mieć swoje wyjście skierowane na unikalny plik. Wiele procesów nie może współużytkować tego samego pliku wyjściowego.

Powiązane problemy