You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMD非批处理环境下嵌套FOR循环实现外层迭代触发内层全迭代的方法

CMD嵌套FOR循环实现遍历所有组合的正确方法

你的问题出在误用了FOR /F命令:FOR /F默认是按行读取文本并解析,当你用IN ("A B")时,引号内的内容会被当作单一文本行,默认只取第一个空格分隔的token(也就是"A"),所以外层循环只执行一次;加tokens=*则会把整行(包括空格)作为一个变量,自然得不到拆分后的结果。

正确实现方式:使用普通FOR循环(不带/F)

普通FOR命令会自动按空格、制表符等分隔符拆分字符串列表,完全符合你的需求,命令如下:

FOR %a IN (A B) DO (FOR %b IN (1 2) DO (echo %a%b))

执行后会输出:

A1
A2
B1
B2

如果一定要用FOR /F的实现方式

需要手动指定分隔符和tokens来拆分字符串,不过写法更繁琐:

FOR /F "tokens=1,2 delims= " %a IN ("A B") DO (
    FOR /F "tokens=1,2 delims= " %x IN ("1 2") DO (
        echo %a%x
        echo %a%y
        echo %b%x
        echo %b%y
    )
)

这种方式需要明确指定每个token对应的变量(%a、%b对应外层的A、B;%x、%y对应内层的1、2),不如普通FOR简洁直观。

内容的提问来源于stack exchange,提问作者skeetastax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 20:33:16