您必须另外使用循环允许的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 不同。
为了保存带有空格的路径,请将所有%x 用引号括起来,例如“%i”。我没有在这里做,我只是在呼应令牌。
你也可以做某事。像这样:
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 是如何以相反的顺序处理的,以及它们现在如何“表示”不同的标记。
所以这肯定不是你要求的简明解释。但也许这些例子现在有助于澄清一点......