2011-09-15 33 views
8

Tôi đang cố gắng chạy một số quy trình nền từ một tệp lô và có đầu ra hướng đến một tệp. Có thể thực hiện điều này trong Windows không? Đây là những gì tôi đã thử nhưng nó kết thúc chỉ đạo đầu ra của chương trình bắt đầu thay vì quá trình nền sau đó.Các quy trình nền theo lô với đầu ra được chuyển hướng

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

Ngẫu nhiên, đó là * không * DOS. –

Trả lời

6

Tôi nghĩ cơ hội duy nhất bạn có là tạo một tệp hàng loạt cho mỗi exe mà bạn muốn bắt đầu. Bên trong tập tin batch bạn có thể chuyển hướng đầu ra. Tập tin batch chính sau đó sẽ "bắt đầu" các tập tin thực thi, không phải exe trực tiếp.

Bạn chỉ cần bao gồm một lệnh exit ở phần cuối của mỗi tập tin batch:

start_myapp.cmd chứa sau:

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

sau đó bạn có thể chạy

start start_myapp.cmd 

và đầu ra sẽ được chuyển hướng

+0

+1, bạn đã trả lời nhanh hơn 10 giây so với tôi ... – jeb

+0

Thực ra bạn không cần tệp trợ giúp :-) Xem [câu trả lời của tôi] (http://stackoverflow.com/a/11712561/1012053) – dbenham

9

Thực ra nó là khá dễ dàng mà không cần sử dụng một tệp loạt trợ giúp. Bạn chỉ cần chạy ứng dụng thông qua cmd.exe thay vào đó, và đảm bảo thoát khỏi các ký tự đặc biệt để chúng đi qua cmd.exe.

Có thể bạn không muốn thấy cửa sổ bảng điều khiển bổ sung, vì vậy hãy sử dụng tùy chọn BẮT ĐẦU/B.

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

Mỗi quá trình bắt đầu phải có đầu ra của nó hướng đến một tệp duy nhất. Nhiều quy trình không thể chia sẻ cùng một tệp đầu ra.

Các vấn đề liên quan