DOS批处理for循环的时候 为何不能正确显示变量?该怎么解决

DOS批处理for循环的时候 为何不能正确显示变量?@echo offsetlocal ENABLEDELAYEDEXPANSIONfor %%i in (*.*

DOS批处理for循环的时候 为何不能正确显示变量?
@echo off
setlocal ENABLEDELAYEDEXPANSION
for %%i in (*.*) do (
 setlocal enabledelayedexpansion
 set var =%%i
 echo %%i
 echo !var:~2,2!
)
pause




如上代码   我只是想遍历目录中的文件  截取文件名的一部分来显示 

假设文件名是 12345.txt

这个批处理处理的结果是
12345.txt
~2,2



不应该阿  我想输出的是截取后的值阿..
应该是
12345.txt
34


求高手指点
[解决办法]
set var=%%i等于号的左边不能有空格