Biến chỉ đọc hệ thống %CD%
giữ đường dẫn của người gọi của lô, không phải vị trí tệp lô.
Bạn có thể lấy tên của tập lệnh theo lô do người dùng nhập với %0
(ví dụ: scripts\mybatch.bat
). Parameter extensions có thể được áp dụng cho điều này để %~dp0
sẽ trả lại Drive và Đường dẫn đến tập lệnh theo lô (ví dụ: W:\scripts\
) và %~f0
sẽ trả về tên đường dẫn đầy đủ (ví dụ: W:\scripts\mybatch.cmd
).
Bạn có thể tham khảo các file khác trong cùng một thư mục như kịch bản hàng loạt bằng cách sử dụng cú pháp sau:
CALL %0\..\SecondBatch.cmd
này thậm chí có thể được sử dụng trong một chương trình con, Echo %0
sẽ cung cấp cho các nhãn cuộc gọi nhưng, echo "%~nx0"
sẽ cung cấp cho bạn tên tệp của tập lệnh batch.
Khi biến số %0
được mở rộng, kết quả được bao trong dấu ngoặc kép.
More on batch parameters.
Bạn nên đọc tất cả các câu trả lời cho một câu hỏi, đặc biệt là các getters bỏ phiếu cao hơn, không chỉ là câu trả lời được chấp nhận. Câu trả lời có điểm số cao nhất tại liên kết đã đăng của bạn đã trả lời câu hỏi của bạn. – dbenham
Nếu bạn đang ở c: \ khi bạn nhập tên tập tin thực thi thì c: \ là% cd% sẽ in. – foxidrive