2011-01-11 42 views
5

Tôi muốn sử dụng tệp lô để gọi một tệp lô khác nằm trong thư mục phụ. Ví dụ, nếu hệ thống tập tin cái nhìn của tôi như sau:Sử dụng dấu nhắc lệnh để gọi một tệp hàng loạt trong một thư mục con

MainFolder
        main.bat
        FirstDirectory
        SecondDirectory
             .210 foo.bat

Sau đó main.bat có thể trông như thế này:

echo on 
REM This lines tells the user what this bat file is doing 
call ant 
call \SecondDirectory\foo.bat 

Tôi đang tìm kiếm một giải pháp một dòng mà tôi nghĩ không tồn tại. Thật không may tôi không luôn luôn muốn làm điều này với một tập tin thực thi và muốn làm điều đó trực tiếp từ dòng lệnh.

+3

Nếu bạn loại bỏ dấu gạch chéo ngược đầu, nó sẽ hoạt động: 'gọi SecondDirectory \ foo.bat' – Blorgbeard

+0

Tôi không chắc tôi hiểu vấn đề, tệp lô chính mà bạn đã liệt kê đang gọi một tệp lô khác trong thư mục con (mặc dù \ trong lúc bắt đầu, nó sẽ tắt thư mục gốc). Vấn đề thực tế là gì? Nếu bạn chỉ muốn kết hợp hai dòng cuối cùng thành một, thì bạn có thể sử dụng && và || các toán tử sẽ chạy lệnh sau && nếu lệnh đầu tiên thành công, trong khi || sẽ chạy lệnh sau khi nó chỉ nếu lệnh trước thất bại. –

Trả lời

11

Bạn thực sự có thể gọi tệp lô từ tệp lô khác bằng lệnh call. Như trạng thái @Blorgbeard, các vấn đề là dấu gạch chéo ngược hàng đầu \. Loại bỏ nó chỉ ra SecondDirectory là tương đối so với thư mục làm việc hiện tại.

call SecondDirectory\foo.bat 

Một lời cảnh báo: được gọi là mã trong thời gian chạy. Hãy cẩn thận để tránh biến số name collisions.

+5

Sử dụng cuộc gọi ". \ Folder \ file.bat" cũng sẽ hoạt động (. Là thư mục hiện tại và các đường dẫn trích dẫn thường là ý tưởng hay) – Anders

+0

đây là câu trả lời cho câu hỏi mà tôi đã hỏi. Thật không may, nó không phải là giải pháp cho vấn đề tôi đang phải đối mặt nhưng nó đã dẫn tôi để tìm ra vấn đề. Vì vậy, cảm ơn, hai lần. – KevinO

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