我想把它们循环到输出......
@echo off
set ans=yyynny
echo %ans:~0,1%
echo %ans:~1,1%
echo %ans:~2,1%
echo %ans:~3,1%
echo %ans:~4,1%
echo %ans:~5,1%
pause
输出:
y
y
y
n
n
y
在“帮助”之后我得到了
set ans=yyynny
for /l %%i in (0,1,5) do (echo %ans:~%%i,1%)
pause
课程,它不起作用。它输出这些:
yyynny
yyynny
yyynny
yyynny
yyynny
我该如何解决这个问题?提前谢谢。
答案 0 :(得分:2)
替代不使用延迟扩展:
set ans=yyynny
for /l %%i in (0,1,5) do (call echo %%ans:~%%i,1%%)
答案 1 :(得分:1)
FOR
循环中变量的扩展要求您启用延迟扩展以强制变量在运行时展开,而不是在解析时展开。
尝试
@echo off
setlocal enabledelayedexpansion
set ans=yyynny
for /l %%i in (0,1,5) do (echo !ans:~%%i,1!)
请注意,该变量的语法略有不同!ans!
而不是%ans%
。