从批处理文件中给出以下for循环,为什么这只是打印A?我也试过“tokens = 1 *”
set str=A/B/C/D/E/F
for /F "delims=/" %%S in ("%str%") do (
echo %%~S
)
答案 0 :(得分:1)
delims选项定义分隔符以将每个行拆分为单独的标记。 令牌本身可以通过连续参数进行访问。
set str=A/B/C/D/E/F
for /F "tokens=1,2,3,4,5 delims=/" %%S in ("%str%") do (
echo %%~S %%T %%U %%V %%W
)
这将拆分每个行,但您希望将A/B/C/D/E/F
作为单独的行处理。
这可以通过注入换行来完成
set LF=^
REM ** Two empty lines are required
setlocal EnableDelayedExpansion
set "str=A/B/C/D/E/F"
for %%L in ("!LF!") DO set "str=!str:/=%%~L!"
for /F "delims=/" %%S in ("!str!") do (
echo %%~S
)
第for %%L in ("!LF!") DO set "str=!str:/=%%~L!"
行用换行符替换/