(अधिक विवरण में स्पष्टीकरण एक संग्रहीत 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