[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set /a length=20 & set /a width=23
  4. set /a max=length*width
  5. call :len %max% maxlength
  6. set /a i=1 & set /a j=1 & set /a idelta=0 & set /a jdelta=1 & set /a imax=length & set /a jmax=width & set /a count=0 & set /a imin=2 & set /a jmin=1
  7. :setvalue
  8.     set /a count+=1
  9.     call :loop temp %count% %maxlength%
  10.     set matrix[%i%][%j%]=%temp%
  11.     if "%idelta%,%jdelta%"=="0,1" ( if %j%==%jmax% ( set /a idelta=1 & set /a jdelta=0 & set /a jmax-=1 ))
  12.     if "%idelta%,%jdelta%"=="1,0" ( if %i%==%imax% ( set /a idelta=0 & set /a jdelta=-1 & set /a imax-=1))
  13.     if "%idelta%,%jdelta%"=="0,-1" ( if %j%==%jmin% ( set /a idelta=-1 & set /a jdelta=0 & set /a jmin+=1))
  14.     if "%idelta%,%jdelta%"=="-1,0" ( if %i%==%imin% ( set /a idelta=0 & set /a jdelta=1 & set /a imin+=1))
  15.     set /a i+=idelta & set /a j+=jdelta
  16.     if %count% lss %max% (
  17.         goto:setvalue
  18.     )
  19. for /l %%i in (1,1,%length%) do (
  20.     set str=!matrix[%%i][1]!
  21.     for /l %%j in (2,1,%width%) do ( set "str=!str! !matrix[%%i][%%j]!" )
  22.     echo !str!
  23. )
  24. exit
  25. :loop
  26.    set number=         %2
  27.    set %1=!number:~-%3!
  28. goto :eof
  29. :len
  30.    set Tempstrs=%~1 & Set Tempnum=0
  31.    :下一位
  32.       set Tempstr=!Tempstrs:~%Tempnum%,1!
  33.       if defined Tempstr ( set /a Tempnum+=1 & goto :下一位 )
  34.       set /a %~2=%Tempnum%-1
  35. goto :eof
复制代码

TOP

返回列表