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.
Lệnh call trong Windows
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:
Bạn nên đọc
-
Diện tích hình trụ: Diện tích xung quanh hình trụ, diện tích toàn phần hình trụ
-
Làm thế nào để tắt chế độ kiểm tra chính tả trong Windows 10?
-
Nên dùng PowerShell hay Command Prompt?
-
Công thức tính chu vi hình chữ nhật, diện tích hình chữ nhật
-
Abandonware là gì? Có hợp pháp không?
-
Intel XeSS là gì? So với Nvidia DLSS như thế nào?
Cũ vẫn chất
-
Cách xóa số liên hệ trên Telegram
Hôm qua -
12 mẫu điện thoại có tốc độ 5G nhanh nhất hiện nay
Hôm qua -
Làm thế nào để tắt chế độ kiểm tra chính tả trong Windows 10?
Hôm qua -
Hướng dẫn toàn tập Word 2016 (Phần 26): Tạo đồ họa SmartArt
Hôm qua -
Vl, vkl, vcl là gì trên Facebook?
Hôm qua -
Cách xóa khoảng trắng giữa các chữ trong Word
Hôm qua -
Giờ UTC là gì? Cách chuyển giờ UTC sang giờ Việt Nam
Hôm qua -
Hướng dẫn viết hoa trên Google Docs các kiểu
Hôm qua -
12 bài văn về thầy cô hay và ý nghĩa nhất
Hôm qua -
Kiểm soát định dạng khi dán văn bản trong Word
Hôm qua