2013-05-30 40 views
8

Sau đây là khối mã dơi kịch bản mà tôi đang làm việc trên:lệnh được bỏ qua sau khi lệnh ant trong tập tin batch

ECHO off 

IF NOT EXIST "%ANT_HOME%" ( 

    SET ANT_HOME=%~dp0%build\apache-ant-1.8.2 
    SET ANT_BIN=%~dp0%build\apache-ant-1.8.2\bin 

    SET PATH | FIND "%ANT_HOME%;%ANT_BIN%" 
) 
cd "build\Run" 
ant -q 

cd ../.. 
echo "Program Terminated!" 
exit 

Bây giờ, file build.xml của tôi là bên này xây dựng thư mục \ Run để tôi đang điều hướng đầu tiên để xây dựng/Chạy trước khi chạy lệnh ant -q (LƯU Ý: Tôi không muốn thay đổi phương thức điều hướng này).

điều

Khoảnh khắc lệnh -q kiến ​​được thực hiện sau đây xảy ra:

  1. Đặt biến môi trường như tình trạng này.
  2. Thay đổi thư mục để tạo \ Chạy.
  3. Vì tệp build.xml của tôi nằm trong thư mục Run, lệnh ant -q chạy đúng.
  4. Ant được thực hiện đúng và không phải tập lệnh kiến ​​kết thúc.
  5. Bây giờ đường dẫn hiện tại của tôi sẽ được xây dựng \ Chạy! đúng < = Ở đây tôi không muốn điều này sau khi kiến ​​chấm dứt, thay vào đó tôi muốn đi ra từ xây dựng \ Run đó là lý do tại sao tôi sử dụng cd../..

Nhưng vấn đề là tôi không thể thực hiện các lệnh sau ant -q. Điều này xảy ra là điều khiển chương trình đi từ BATCH => ANT.

Có cách nào để thực thi lệnh của tôi sau lệnh ant từ tập lệnh bat không?

+1

lưu ý rằng 'SET PATH | TÌM "! ANT_HOME!;! ANT_BIN!" 'KHÔNG đặt đường dẫn của bạn - nó chỉ cho bạn biết nếu các bổ sung của bạn có ở đó ... – Stephan

Trả lời

17

Bạn có thể thấy rằng ant đang chạy là một tập tin thực thi chính nó, trong trường hợp nó chỉ đơn giản là chuỗi nó (không trở lại).

Bạn nên cố gắng này để thay thế:

call ant -q 

Gọi một tập tin thực thi (như trái ngược với chaining) một cách chính xác sẽ trở lại điểm sau đó bạn gọi nó.

+0

Đã khắc phục sự cố của tôi! Cảm ơn! –

+0

Nước sốt tuyệt vời! Đã được đấu tranh cố gắng tìm ra những gì đang xảy ra với kịch bản .. Bạn là vị cứu tinh của tôi T^T –

+0

giải pháp hoàn hảo! đã làm cho tôi! cảm ơn rất nhiều! –

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