对于你写的批处理:
1,for /l %%i in (0,2,26) do ( 变量的长度应该是未知的,而却终止值应该使24
2,set /a HalfA=%%i/2下面没有用到HalfA变量,所以看不出他存在的意义
3,call echo !my:~!T!,2!>>%temp%\tst.txt这个直接写成>>%temp% echo !my:~%%i,2!就可以。从语法上讲,!my:~!T!,2!是错误的。
所以,set T=%%i就显得多余了。
所以,set T=1和set HalfA=也没有必要
4,set A%T%=%%i
set /a T+=1
对于这段,应该先使用set /a T+=1,这样变量T为从1开始的数列,即1,2,3,4。。。。。。
set A%T%=%%i,对于这个应放在set /a T+=1的后面,对于for 内部使用扩展T这个在for内部变化的变量,应该使用变量延迟,即!T!
5,应该在最后面使用del,而不是在开始。
6,在这个批处理中,显然sort要比其他的方法快,为什么 反而不用呢?
::--------BEGIN---------------
set my=04050608070309121113101415
setlocal enabledelayedexpansion
for /l %%i in (0,2,24) do >>%temp%\tst.txt echo !my:~%%i,2!
for /f %%i in ('sort %temp%\tst.txt') do set /a T+=1&set A!T!=%%i
echo %A1% %A2% %A3% %A4% %A5% %A6% %A7% %A8% %A9% %A10% %A11% %A12% %A13%
del /f /q %temp%\tst.txt
PAUSE
::----------END--------------
Last edited by Hanyeguxing on 2009-12-21 at 22:08 ]