我修改了一下,上面的有些小问题,楼主再试下这个,但要求还是3的倍数。楼主没有说明如果不是3的倍数中间3个的取值有何规律性,我也就没有些此相关的代码。如果不是3的倍数,比如就像楼主说的A-Z,一共26个,除3余2。这样算来,最后三个中间的就是Y Z 以及未知,所以会出现问题,但是楼主说最后是中间的是X Y Z,有何规律性,如果除3余1的话(比如A-Y),那么又该如何写?- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d /on^|find /i /v "%~nx0"') do set "argument=!argument!%%i "
- set /a n1=1
- call :test !argument!
- set argu_fore=
- echo 执行完毕!
- pause>nul
- goto :eof
- :test
- set /a n2=n1+1
- set /a n3=n1+2
- set arg1=%1
- set arg2=%2
- set arg3=%3
- set arg4=%4
- for /l %%i in (1 1 3) do (
- if not "!arg%%i!" equ "" (
- cd.>!arg%%i!.txt
- set /a num1=n%%i-1,num2=n%%i+1
- if defined argu_fore (
- set /p=^<var^><nul>>!arg%%i!.txt
- call set /p=!argu_fore!<nul>>!arg%%i!.txt
- echo ^<tr^>!num1!^</tr^>^<var^><nul>>!arg%%i!.txt
- )
- echo ^<var^>!arg1!^<tr^>!n1!^</tr^>^<var^>>>!arg%%i!.txt
- echo ^<var^>!arg2!^<tr^>!n2!^</tr^>^<var^>>>!arg%%i!.txt
- echo ^<var^>!arg3!^<tr^>!n3!^</tr^>^<var^>>>!arg%%i!.txt
- set /a num=%%i+1
- if not "!arg4!" equ "" (
- set /p=^<var^><nul>>!arg%%i!.txt
- call set /p=%%arg!num!%%<nul>>!arg%%i!.txt
- echo ^<tr^>!num2!^</tr^>^<var^><nul>>!arg%%i!.txt
- ) else if %%i lss 3 (
- set /p=^<var^><nul>>!arg%%i!.txt
- call set /p=%%arg!num!%%<nul>>!arg%%i!.txt
- echo ^<tr^>!num2!^</tr^>^<var^><nul>>!arg%%i!.txt
- )
- set argu_fore=!arg%%i!
- )
- )
- set /a n1+=3
- shift&shift&shift
- if not "%1" equ "" goto test
复制代码
[ 本帖最后由 lhjoanna 于 2009-1-9 16:45 编辑 ] |