楼主第一个批处理其实用不着开启变量延时。下方的取值操作位于非语句块内,s值已可被正常读取,直接用call echo %%%s:~1,1%%%即可。
第二个批处理中call还是对%%ok%%进行了处理,变成%ok%,第二次是以%ok%作为变量名来进行取值的,由于当前环境找不到此变量名,导致了异常结果的显示。
可以用下方代码进行验证:- @echo on
- set ok=adsl
- set %%ok%%=lsda
- setlocal enabledelayedexpansion
- call echo !%%ok%%:~1,1!
- endlocal
-
- pause
复制代码
|