2010-11-18 38 views
8

Tôi có một tập tin thực thi mà tôi thường gọi như thế này:thế nào để chạy một tập tin thực thi cmd.exe trong một vỏ tiểu

longjob.cmd >result.txt 2>&1 

này hoạt động tốt, nhưng kịch bản thay đổi thư mục trong thực hiện của nó để lại vỏ của tôi trong thư mục đó - đó là một mối phiền toái.

Có cách nào để chạy lệnh trong một trình bao phụ hay không - trong khi vẫn cho phép thu được đầu ra?

Tôi đã thử

cmd longjob.cmd >result.txt 2>&1 

mà chỉ ngồi chờ đợi một lệnh thoát.

Ngoài ra tôi đã cố gắng

start longjob.cmd >result.txt 2>&1 

mà chạy kịch bản, nhưng trong một cửa sổ mới và tất cả các đầu ra sẽ được gửi đến cửa sổ đó thay vì tập tin.

+0

Cách dễ nhất để giải quyết vấn đề này là thực sự sửa chữa tệp lô. 'pushd' /' popd' là trợ giúp ở đây. Trừ khi mục đích của tập tin batch là thay đổi thư mục tôi sẽ không bao giờ viết một thư mục nào nằm trong thư mục khác với thư mục bắt đầu. – Joey

+0

Điều gì về việc hủy bỏ tập tin batch với^C chẳng hạn. Có cách nào hợp lý để khôi phục lại thư mục làm việc ban đầu mặc dù các tập tin thực thi bị hủy bỏ? – bambams

Trả lời

12

Hãy thử

CMD /C longjob.cmd >result.txt 2>&1 

Không chắc thế nào nó sẽ đối phó với những chuyển hướng, nhưng CMD/C cho phép bạn nói với CMD gì để chạy và nó sẽ thoát khi hoàn tất. (CMD/K cho phép bạn yêu cầu nó chạy một cái gì đó nhưng dính xung quanh khi hoàn thành.) Nó sẽ tái sử dụng cửa sổ bàn điều khiển hiện có nếu chạy trong một.

+0

"cmd/c" dường như thực hiện thủ thuật. Cảm ơn nhiều. – Martin

+0

Chính xác đối diện, Leo: '/ c' tồn tại sau khi chạy lệnh,'/k' sẽ cho bạn lời nhắc sau đó. – Joey

+0

Vâng, tôi nhận được đường C và K sai đường. Đã chỉnh sửa để sửa. –

0

Lệnh call có thể là những gì bạn muốn.

ví dụ:

call longjob.cmd >result.txt 2>&1 
+1

nếu longjob.cmd gọi chdir, vỏ cuộc gọi nằm trong thư mục đó khi tập lệnh kết thúc khi được sử dụng với cuộc gọi. – Martin

+0

Cuộc gọi dường như không chạy tập lệnh trong một tiến trình riêng biệt (hệ vỏ con). Nó chỉ thực thi kịch bản trong tiến trình hiện tại để lại các tác dụng phụ (thay đổi thư mục, sửa đổi biến môi trường, vv) từ việc thực hiện. – Nathan

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