(Подробное описание в можно найти в архивной статье 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