batch.bat-6ren">
gpt4 book ai didi

windows - 如何在cmd for循环中迭代字符串?

转载 作者:可可西里 更新时间:2023-11-01 13:50:42 24 4
gpt4 key购买 nike

我正在尝试在批处理脚本中迭代一个字符串:

set var="1 2 3"

for /F %%i in (%var%) do (
echo %%i
)

并得到这个输出:

C:\>batch.bat


C:\>set var="1 2 3"

C:\>for /F %i in ("1 2 3") do (echo %i )

C:\>(echo 1 )
1

我希望打印所有 3 个数字:

1
2
3

我做错了什么?

最佳答案

那是因为 FOR/F 将每一行拆分为多个标记,但您需要定义要处理的标记数量。

set var="1 2 3"

for /F "tokens=1-3" %%i in (%var%) do (
echo %%i
echo %%j
echo %%k
)

编辑:其他解决方案

喜欢Ed harper的回答:
您也可以使用普通的 FOR 循环,但限制是它还会尝试搜索磁盘上的文件,并且 *? 有问题。

set var=1 2 3

for %%i in (%var%) do (
echo %%i
)

或者您在 FOR/F 循环中使用换行技术,用换行替换您的分隔字符。

setlocal EnableDelayedExpansion
set LF=^


set "var=1 2 3 4 5"
set "var=%var: =!LF!%"
for /F %%i in ("!var!") do (
echo %%i
)

这是有效的,因为 FOR/F 看到由换行符分割的五行,而不是只有一行。

关于windows - 如何在cmd for循环中迭代字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11153532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com