(คำอธิบายรายละเอียดเพิ่มเติมสามารถพบได้ในบทความ Microsoft KB ที่เก็บถาวร )
สามสิ่งที่ควรรู้:
- เครื่องหมายเปอร์เซ็นต์จะใช้ในไฟล์ชุดเพื่อเป็นตัวแทนของพารามิเตอร์บรรทัดคำสั่ง
%1
, %2
...
เครื่องหมายสองเปอร์เซ็นต์ที่มีอักขระใด ๆ คั่นระหว่างเครื่องหมายเหล่านี้จะถูกตีความเป็นตัวแปร:
echo %myvar%
- สัญญาณสองเปอร์เซ็นต์ที่ไม่มีอะไรอยู่ระหว่าง (ในไฟล์แบตช์) จะถือว่าเหมือนกับการลงชื่อเพียงเปอร์เซ็นต์เดียวในคำสั่ง (ไม่ใช่ไฟล์แบตช์):
%%f
ทำไมเป็นอย่างนั้น?
ตัวอย่างเช่นหากเราเรียกใช้บรรทัดคำสั่ง (แบบง่าย) ของคุณ
FOR /f %f in ('dir /b .') DO somecommand %f
ในไฟล์แบตช์กฎ 2จะพยายามตีความ
%f in ('dir /b .') DO somecommand %
เป็นตัวแปร เพื่อป้องกันสิ่งนั้นคุณต้องใช้กฎข้อ 3และหลีกหนี%
ข้อที่สอง%
:
FOR /f %%f in ('dir /b .') DO somecommand %%f