[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 terse 于 2012-3-11 20:49 编辑

不想在FOR里 CALL 出来 所以有一段重复代码在里面 虽显臃肿 但CALL的效率。。
  1. @echo off&setlocal enabledelayedexpansion
  2. set /a N=5,R=3,S=N-R,i=1,p=1,_i=R-1
  3. for /l %%i in (1,1,%S%) do set /a "i*=(N-%%i+1),P*=%%i"
  4. set /a i/=p,P=1
  5. for /l %%i in (1 1 !R!) do set /a "P*=%%i,J%%i=P"&set T=10%%i&set "str=!str!#!T:~-2!
  6. set /aP-=1
  7. for /l %%i in (1 1 %R%) do set /a A%%i=%%i,B%%i=%%i+S&set T=10%%i&set "_!T:~-2!=%%i"
  8. for /l %%i in (0 1 %p%) do (
  9.     set T=!str!&set M=%%i&set #=&set "$="
  10.     for /l %%j in (%_i% -1 1) do (
  11.         set /a "D=M/J%%j*3,M=%%i%%J%%j"
  12.         for %%k in (!D!) do (
  13.             for %%l in ("!T:~%%k,3!") do (
  14.                 set #=!#! %%~l
  15.                 set T=!T:%%~l=!
  16.             )
  17.         )
  18.     )
  19.     for %%j in ("!#:#=!" "!T:#=!") do for %%k in (%%~j) do set $=!$! !_%%k!
  20.     echo!$!
  21. )
  22. for /l %%a in (2 1 !i!) do (
  23.     for /l %%i in (1 1 !R!) do if "#!A%%i!" neq "#!B%%i!" set M=%%i
  24.     for %%i in (!M!) do set L=!A%%i!
  25.     for /l %%j in (1 1 %R%) do (
  26.         if %%j geq !M! set/a A%%j=L+1,L=A%%j
  27.         set T=10%%j
  28.         set "_!T:~-2!=!A%%j!"
  29.     )
  30.     for /l %%i in (0 1 %p%) do (
  31.        set T=!str!&set M=%%i&set #=&set "$="
  32.        for /l %%j in (%_i% -1 1) do (
  33.            set /a "i=M/J%%j*3,M=%%i%%J%%j"
  34.            for %%k in (!i!) do (
  35.                for %%l in ("!T:~%%k,3!") do (
  36.                    set #=!#! %%~l
  37.                    set T=!T:%%~l=!
  38.                )
  39.            )
  40.        )
  41.        for %%j in ("!#:#=!" "!T:#=!") do for %%k in (%%~j) do set $=!$! !_%%k!
  42.        ECHO!$!
  43.    )
  44. )
  45. pause
复制代码
1

评分人数

TOP

返回列表