Lệnh call trong Windows

Lệnh call gọi một chương trình batch từ chương trình khác mà không cần dừng chương trình batch gốc. Lệnh call chấp nhận label làm mục tiêu của nó.

Chú ý: Lệnh call không có hiệu lực tại command prompt, khi nó được sử dụng bên ngoài tập lệnh hoặc file thực thi.

Cú pháp

call [Drive:][Path]<FileName> [<BatchParameters>] [:<Label> [<Arguments>]]

Tham số

Tham số Mô tả
[<Drive>:][] Chỉ định vị trí và tên của chương trình batch mà bạn muốn gọi. Tham số FileName là bắt buộc và phải có đuôi .bat hoặc .cmd.
<BatchParameters> Chỉ định bất kỳ thông tin dòng lệnh nào được yêu cầu bởi chương trình batch.
:<Label> Chỉ định label mà bạn muốn quyền kiểm soát chương trình batch được chuyển tới.
<Arguments> Chỉ định thông tin dòng lệnh sẽ được chuyển tới đối tượng mới trong chương trình batch, bắt đầu tại :Label.
/? Hiển thị trợ giúp tại dấu nhắc lệnh.

Tham số batch

Tham chiếu đối chiếu tập lệnh batch (%0, %1,...) được liệt kê trong bảng sau.

%* trong tập lệnh batch đề cập đến tất cả các đối số (ví dụ: %1, %2, %3...)

Bạn có thể sử dụng các cú pháp tùy chọn sau đây thay thế cho các tham số batch (%n):

Tham số batch Mô tả
%~1 Mở rộng %1 và loại bỏ dấu ngoặc kép xung quanh (" ").
%~f1 Mở rộng %1 thành đường dẫn đủ điều kiện.
%~d1 Chỉ mở rộng %1 thành ký tự ổ đĩa.
%~p1 Chỉ mở rộng %1 thành đường dẫn.
%~n1 Chỉ mở rộng %1 thành một tên file.
%~x1 Chỉ mở rộng %1 thành phần mở rộng tên file.
%~s1 Mở rộng %1 thành đường dẫn đủ điều kiện chỉ chứa các tên ngắn.
%~a1 Mở rộng %1 thành thuộc tính file.
%~t1 Mở rộng %1 thành ngày và giờ của file.
%~z1 Mở rộng %1 thành kích thước của file.
%~$PATH:1 Tìm kiếm các thư mục được liệt kê trong biến môi trường PATH và mở rộng %1 thành tên đầy đủ của thư mục đầu tiên được tìm thấy. Nếu tên biến môi trường không được xác định hoặc file không được tìm thấy, thì modifier này sẽ mở rộng thành chuỗi rỗng.

Bảng sau đây cho thấy cách bạn có thể kết hợp các modifier với các tham số batch để cho ra các kết quả ghép sau:

Tham số batch với modifier Mô tả
%~dp1 Chỉ mở rộng %1 thành ký tự ổ đĩa và đường dẫn.
%~nx1 Chỉ mở rộng %1 thành tên file và tiện ích mở rộng.
%~dp$PATH:1 Tìm kiếm các thư mục được liệt kê trong biến môi trường PATH cho %1, và sau đó mở rộng đến ký tự ổ đĩa và đường dẫn của thư mục đầu tiên được tìm thấy.
%~ftza1 Mở rộng %1 để hiển thị đầu ra tương tự như lệnh dir.

Trong các ví dụ trên, %1 và PATH có thể được thay thế bằng các giá trị hợp lệ khác. Cú pháp %~ được kết thúc bằng một số đối số hợp lệ. Không thể sử dụng các modifier %~ với %\*.

Ghi chú

Sử dụng tham số batch

Các tham số batch có thể chứa bất kỳ thông tin nào mà bạn có thể chuyển sang một chương trình batch, bao gồm các tùy chọn dòng lệnh, tên file, tham số batch từ %0 đến %9 và các biến (ví dụ %baud%).

Sử dụng tham số Label

Bằng cách sử dụng lệnh call với tham số Label, bạn sẽ tạo một ngữ cảnh mới cho file batch và chuyển quyền kiểm soát đến câu lệnh sau label được chỉ định. Lần đầu tiên file thực thi kết thúc (có nghĩa là, sau khi nhảy đến label), một câu lệnh được trả về sau câu lệnh call. Lần thứ hai file thực thi kết thúc, tập lệnh batch sẽ được thoát ra.

Sử dụng ký hiệu (|) và biểu tượng chuyển hướng

Không sử dụng ký hiêu (|) và các ký hiệu chuyển hướng (< hoặc >) với lệnh call.

Thực hiện lệnh call đệ quy

Bạn có thể tạo một chương trình batch tự gọi chính nó. Tuy nhiên, bạn phải cung cấp một điều kiện thoát. Nếu không, các chương trình batch gốc và chương trình con có thể tạo thành vòng lặp không ngừng.

Làm việc với các phần mở rộng lệnh

Nếu phần mở rộng lệnh được kích hoạt, lệnh call chấp nhận label làm mục tiêu của lệnh. Cú pháp chính xác như sau:

call :\<Label> <Arguments>

Ví dụ

Để chạy chương trình Checknew.bat từ một chương trình batch khác, hãy gõ lệnh sau vào chương trình batch gốc:

call checknew

Nếu chương trình batch gốc chấp nhận hai tham số batch và bạn muốn nó chuyển các tham số đó tới Checknew.bat, hãy gõ lệnh sau vào chương trình batch gốc:

call checknew %1 %2

Xem thêm:

Thứ Ba, 27/08/2019 11:32
51 👨 237