Вы должны дополнительно использовать часть параметров tokens=1,2,...
, которую допускает цикл for
. Это здесь будет делать то, что вы, возможно, хотите:
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12 delims=;" %a in ("%PATH%") ^
do ( ^
echo. %b ^
& echo. %a ^
& echo. %c ^
& echo. %d ^
& echo. %e ^
& echo. %f ^
& echo. %g ^
& echo. %h ^
& echo. %i ^
& echo. %j ^
& echo. %k ^
& echo. ^
& echo. ...and now for some more... ^
& echo. ^
& echo. %a ^| %b ___ %c ... %d ^
& dir "%e" ^
& cd "%f" ^
& dir /tw "%g" ^
& echo. "%h %i %j %k" ^
& cacls "%f")
В этом примере обрабатываются только первые 12 токенов (= каталогов из% path%). Он использует явное перечисление каждого из используемых токенов. Обратите внимание, что имена токенов чувствительны к регистру:% a отличается от% A.
Чтобы сохранить пути с пробелами, окружите all % x кавычками, подобными этой "% i". Я не делал это здесь, где я только повторяю жетоны.
Вы также можете сделать s.th. как это:
for /f "tokens=1,3,5,7-26* delims=;" %a in ("%PATH%") ^
do ( ^
echo. %c ^
& echo. %b ^
& echo. %a ^
& echo. %d ^
& echo. %e ^
& echo. %f ^
& echo. %g ^
& echo. %h ^
& echo. %i ^
& echo. %j ^
& echo. %k )
Этот пропускает токены 2,4,6 и использует небольшой ярлык ("7-26
"), чтобы назвать остальных из них. Обратите внимание, как% c,% b,% a на этот раз обрабатываются в обратном порядке, и как они теперь «означают» разные токены по сравнению с первым примером.
Так что это, конечно, не краткое объяснение, которое вы просили. Но, возможно, примеры помогут прояснить немного лучше ...