字符串解析:For循环Windows批处理脚本

问题描述 投票:0回答:2

我花了一段时间阅读http://ss64.com/nt/for_cmd.html,浏览了各种其他问题,并尝试了示例的许多不同的小命令行变体,但仍然没有'还没有完成一个简单的 for 循环任务。

基本上,我想做一些类似命令的事情

FOR /f %%G in ("1 2 7 16 21 26 688") do(
    echo %%G
)

我想要得到的输出是

1
2
...
688

但我得到的只是

1

然后就退出了。通过尝试各种参数(即尝试过“tokens=*”、echo %%G echo %%H、“delims=”),没有得到所需的输出。相反,我得到类似的东西

1 2 7 ... 688

1 %H
batch-file
2个回答
1
投票

用批处理文件这样尝试:

@echo off
FOR %%G in (1 2 7 16 21 26 688) do (
    echo %%G
)
pause>nul

0
投票

看来,表达您希望通过调用 tokens=1-7 来提取 7 个特定项目非常重要。 令牌 1 将为 %%G,每个连续的规定令牌使用 %%H、%%I 等。 想要为每个标记表达一行,可以通过为每个标记的变量一次回显 1 个 echo 命令来实现,可以是每行一个堆叠的形式,也可以是用 &s 依次用括号分组的形式: 做(回声%%G)和(回声%%H)和(回声%%I)...等等

总的来说,以下内容对我有用:

for /f "tokens=1-7" %G in ("1 2 7 16 21 26 688") do ( echo %G echo %H echo %I echo %J echo %K echo %L echo %M )

© www.soinside.com 2019 - 2024. All rights reserved.