windows – 如何让for循环使用逗号分隔的字符串?

前端之家收集整理的这篇文章主要介绍了windows – 如何让for循环使用逗号分隔的字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
到目前为止这是我的代码
for /f "tokens=1 eol=," %%f IN ("1,2,3,4") do  (
    echo .
    echo %%f    
)

我期待这样做:

.
1
.
2
.

等等…

但相反,我得到:

.
1

就是这样.我错过了什么?

你误解了这些选择.

> tokens = 1表示您只需要每行上的第一个标记.你想要所有的标记就行了.
> eol =,表示您要将逗号解释为行结束注释的开头.您想使用delims =,而不是指示逗号是分隔符(而不是空格的默认值).

FOR / F主要用于在文件中的行上操作.你不是那样做的.你在单个字符串上操作,所以鲁本斯的回答更接近你想要的:

@ECHO OFF
SET test=1,4
FOR /D %%F IN (%test%) DO (
  ECHO .
  ECHO %%F
)

但是,从理论上讲,你应该可以这样说:

FOR /F "usebackq delims=,tokens=1-4" %%f IN ('1^,2^,3^,4') DO (
  ECHO .
  ECHO %%f    
  ECHO .
  ECHO %%g
  ECHO .
  ECHO %%h
  ECHO .
  ECHO %%i
)

这也有效,但可能无法以您想要的方式扩展.请注意,您必须使用^字符转义字符串中的逗号,并且必须指定所需的标记,然后使用后续变量%g,%h和%i来获取它们.

猜你在找的Windows相关文章