Batch file 如何从批处理文件中for循环内的字符串中读取字符

Batch file 如何从批处理文件中for循环内的字符串中读取字符,batch-file,Batch File,我试图从for循环中的字符串中读取一些字符,但没有得到结果。我的代码是这样的 @echo off setlocal enableextensions enabledelayedexpansion set str="abcdefgh" for /l %%x in (1,1,5) do ( set fstr=!str:~1,%%x! echo %fstr% ) 我一直得到的结果是“回声关闭”。请帮助解决此更改 echo %fstr% 到 %fstr%显示解析行时存在的fstr值,即未设置,因此

我试图从for循环中的字符串中读取一些字符,但没有得到结果。我的代码是这样的

@echo off
setlocal enableextensions enabledelayedexpansion
set str="abcdefgh"
for /l %%x in (1,1,5) do (
set fstr=!str:~1,%%x!
echo %fstr%
)
我一直得到的结果是“回声关闭”。请帮助解决此更改

echo %fstr%

%fstr%显示解析行时存在的
fstr
值,即未设置,因此

ECHO %fstr%
被解释为

echo
因此,
ECHO
报告ECHO状态-
ECHO关闭

ECHO !fstr!

在循环中更改时显示
fstr的值(运行时值)。

您需要使用
当回声
fstr
时;试试回声!fstr而不是循环中的回声%fstr%
ECHO !fstr!