Batch file Windows批处理循环仅迭代一次
鉴于批处理文件中的以下for循环,为什么这只是打印一个?我也尝试过“tokens=1*”Batch file Windows批处理循环仅迭代一次,batch-file,Batch File,鉴于批处理文件中的以下for循环,为什么这只是打印一个?我也尝试过“tokens=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 L
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
)
“!LF!”中%%L的行设置为“str=!str://=%%~L!”
将/
替换为换行符
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
)