作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
到目前为止,这是我的代码:
for /f "tokens=1 eol=," %%f IN ("1,2,3,4") do (
echo .
echo %%f
)
我期待它产生:
.
1
.
2
.
等...
但我得到的是:
.
1
就是这样。我错过了什么?
最佳答案
您误解了这些选项。
tokens=1
表示您只需要每行的第一个标记。你想要线上的所有 token 。eol=,
表示您要将逗号解释为行尾注释 的开头。您想使用 delims=,
来指示逗号是分隔符(而不是默认值空白)。FOR/F 主要用于对文件中的行进行操作。你没有那样做。你在单个字符串上操作,所以鲁本斯的答案更接近你想要的:
@ECHO OFF
SET test=1,2,3,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 - 如何让 for 循环使用逗号分隔的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2112694/
我是一名优秀的程序员,十分优秀!