加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:38:04 所属栏目:Windows 来源:网络整理
导读:到目前为止这是我的代码: for /f "tokens=1 eol=," %%f IN ("1,2,3,4") do ( echo . echo %%f ) 我期待这样做: .1.2. 等等… 但相反,我得到: .1 就是这样.我错过了什么? 你误解了这些选择. tokens = 1表示您只需要每行上的第一个标记.你想要所有的标记就
到目前为止这是我的代码:
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来获取它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读