Một cách khác là sử dụng một tham số được trích dẫn kép. Khi gọi ứng dụng khác, bạn chỉ cần sử dụng thiết bị %~N
trên dòng lệnh để xóa dấu ngoặc kép.
Nếu một số thông số bạn định chuyển đến ứng dụng được tự trích dẫn kép, các ký tự báo giá phải được lặp lại hai lần.
Dưới đây là một kịch bản minh họa sử dụng các tham số đầu tiên là tên của ứng dụng và thứ hai như một danh sách tham số kết hợp để vượt qua các ứng dụng:
@ECHO OFF
CALL %1 %~2
Dưới đây là ví dụ về cách gọi kịch bản cho trường hợp khác nhau (qua một tham số hoặc một vài tham số hoặc tham số được trích dẫn).
đèo 1 tham số để ứng dụng:
C:\>mybatch.bat app.exe "app_param"
C:\>mybatch.bat app.exe app_param
đèo một vài thông số:
C:\>mybatch.bat app.exe "app_param1 app_param2 app_param3"
Vượt qua một tham số trong đó bao gồm không gian (và do đó phải được trích dẫn):
C:\>mybatch.bat app.exe """parameter with spaces"""
Một ví dụ kết hợp: một số thông số là với không gian, những người khác không phải là:
C:\>mybatch.bat app.exe "param_with_no_spaces ""parameter with spaces"" another_spaceless_param"
Nguồn
2011-02-07 11:04:57
+1, duy nhất tôi sẽ đặt việc kiểm tra thông số rỗng * trước * xử lý tham số. –