(Giải thích chi tiết hơn có thể được tìm thấy trong một bài viết Microsoft KB được lưu trữ .)
Ba điều cần biết:
- Các ký hiệu phần trăm được sử dụng trong các tập tin batch để đại diện cho các tham số dòng lệnh:
%1
, %2
, ...
Dấu hai phần trăm với bất kỳ ký tự nào ở giữa chúng được hiểu là một biến:
echo %myvar%
- Hai dấu phần trăm không có bất kỳ thứ gì ở giữa (trong một tệp lô) được coi như một dấu phần trăm duy nhất trong một lệnh (không phải tệp lô):
%%f
Tại sao vậy?
Ví dụ: nếu chúng tôi thực hiện dòng lệnh (đơn giản hóa) của bạn
FOR /f %f in ('dir /b .') DO somecommand %f
trong một tệp hàng loạt, quy tắc 2 sẽ cố gắng diễn giải
%f in ('dir /b .') DO somecommand %
như một biến. Để ngăn chặn điều đó, bạn phải áp dụng quy tắc 3 và thoát khỏi quy tắc%
thứ hai %
:
FOR /f %%f in ('dir /b .') DO somecommand %%f