2012-05-02 29 views
13

Vì vậy, tôi đã một lệnh Tôi muốn chạy mà trông giống như sau:Đối lệnh sử dụng devenv.exe chạy quá nhanh

for /r %n in ("*.vdproj") do "C:/Program Files/Microsoft 
Visual Studio 10.0/Common7/IDE/devenv.exe" %n /build "BuildServer" 

Có vẻ như để làm việc ở chỗ nó chạy devenv trên mỗi file .vdproj; tuy nhiên, nó dường như chạy chúng song song và ngay lập tức trở lại. Đây là một vấn đề; Tôi cần phải đợi cho đến khi tất cả được hoàn thành trước khi bước tiếp theo trong tập tin .bat chạy. Làm thế nào tôi có thể một trong hai

1- Nhận cho đến 'chờ' trên mỗi devenv để kết thúc trước khi chạy tới một

hoặc

2- Chờ cho đến khi devenv.exe là tất cả được thực hiện trước khi chuyển sau đó?

+0

(bạn không muốn% n% hoặc thậm chí là %% n %%?) Khác 2 điều. Bạn có chắc chắn devenv.exe thực sự đang làm điều gì đó HOẶC là nó không ngay lập tức, cho bạn ấn tượng rằng nó đang chạy danh sách của bạn song song? tức là bạn đã thử thực hiện chỉ một lần lặp của vòng lặp for (không có forloop) từ dòng lệnh, điền vào các giá trị dir/file đã biết, hiện có cho% n của bạn? 2. sử dụng tab quy trình trên trình quản lý tác vụ, được sắp xếp theo tên quy trình, để xem liệu bạn có thấy một mớ hỗn độn của devenv.exe đang chạy trên hệ thống của bạn hay không. Điều đó sẽ chứng minh rằng câu hỏi số 1 của tôi không liên quan. Chúc may mắn. – shellter

+0

Nếu tôi nhìn vào trình quản lý tác vụ, tôi thấy toàn bộ hàng loạt hoạt động của Devenv.exe đang chạy và dường như chúng chạy đến khi hoàn thành và dừng lại. – GWLlosa

Trả lời

1

Gọi devenv.exe bằng cách sử dụng start, ví dụ:

start /wait "" "C:/Program Files/Microsoft Visual Studio 10.0/Common7/IDE/devenv.exe" %n /build "BuildServer" 

Sử dụng start /? để sử dụng.

+0

Tôi đã thử điều đó, nhưng nó vẫn quay trở lại ngay lập tức ... không chắc chắn nếu nó bởi vì devenv có khởi chạy riêng của nó-on-riêng thread và trả lại trò chơi hoặc một cái gì đó, nhưng bắt đầu/chờ/B đã không làm việc ở tất cả. – GWLlosa

+0

Thú vị. Một cách giải quyết khác, ngoài đỉnh đầu của tôi, là bỏ qua devenv và gọi trực tiếp msbuild. – Sorpigal

+0

Thật không may, đây là giải pháp thay thế cho msbuild ... MSBuild.exe không thể xử lý trực tiếp các dự án .vdproj (trình cài đặt/hợp nhất mô-đun). – GWLlosa

33

Bí quyết là sử dụng devenv.com thay vì devenv.exe. devenv.com sẽ trả về đầu ra cho bảng điều khiển và đạt được kết quả mong muốn.

+0

Điều gì nếu nó là một máy 64bit? – dbenham

+0

Sau đó, nó có lẽ là Program Files (x86). – GWLlosa

+0

Tôi đã đề cập đến thực tế là Windows 64bit không chạy các tệp .com. – dbenham

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