变量延迟没问题
两句 if 前后位置搞错了
事实上 if !num! gtr 1 set /a stt=stt+num-1 此句的if 是多余的,直接 set /a 就好了。
第一句 set str=123456789 没必要放在for里面
call 那句可用for 来中转变量,以提高效率。同时还可省略 num 变量,直接 %%a 就ok了。
给你精简一下
- @echo off&setlocal enabledelayedexpansion
- set str=123456789
- for /l %%i in (1,1,9) do set /a n+=1
- for /l %%a in (1,1,9) do (
- for %%i in (n-3,n-2,n-1,n+1,n+2,n+3) do (
- set /a stt=%%i+%%a-1
- if !stt! geq 9 set /a stt=stt%%9
- for %%j in (!stt!) do echo %%a !str:~%%j,1! !stt!
- )
- )
- pause
复制代码
.
[ 本帖最后由 随风 于 2010-4-22 11:17 编辑 ] |