找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16734|回复: 7

画个矩形,自己玩

[复制链接]
发表于 2008-9-29 17:08:15 | 显示全部楼层 |阅读模式
画个矩形,自己玩
作者: 未知
转载代码 :在这里向原作者表示感谢..........
========================================================================================================

自己复制代码自己测试下,看效果。呵呵。根据它的提示输入字符,别瞎输入,输入错了,说代码有问题。其实代码没有一点问题,别在楼下骂我就是了。我一点都不懂,只是帖出来,大家看下,玩一下而已。有兴趣的跟帖说明.
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
  1. @echo off
  2. color 0a
  3. ::::::::绘制矩形 {s11ss 2007-10-12}::::::::
  4. setlocal enabledelayedexpansion
  5. if "%1" equ "/?" (
  6.         call :help
  7.         echo 例如:%0 * 8 500
  8.         goto :eof
  9. )

  10. ::设置变量:
  11. if "%1" equ "" (
  12.         call :help
  13.         echo 现在就输入参数,如* 8 500:
  14.         set/p s=
  15.         for /f "tokens=1,2* delims= " %%a in ("!s!") do (
  16.                 set c=%%a
  17.                 set n=%%b
  18.                 set w=%%c
  19.         )
  20. ) else (
  21.         set c=%1
  22.         set n=%2
  23.         set w=%3
  24. )
  25. set/a r=%n%-2
  26. for /l %%a in (1,1,%n%) do (
  27.         set up=!up!%c%
  28.         for /l %%i in (1,1,%%a) do set down%%a=!down%%a!%c%
  29.         set/a t=%n%-%%a
  30.         ::pause
  31.         for /l %%z in (1,1,!t!) do set down%%a= !down%%a!
  32.         if %%a leq %r% set space%r%= !space%r%!
  33. )
  34. set mid1=!space%r%! %c%
  35. set mid2=%c%!space%r%!%c%

  36. ::分四步绘制:
  37. ::1.上边的棱
  38. for /l %%a in (1,1,%n%) do (
  39.         cls
  40.         echo !up:~0,%%a!
  41.         call :delay
  42. )
  43. ::2.右边的棱
  44. >t.x echo !up!
  45. for /l %%a in (1,1,%n%) do (
  46.         if %%a leq %r% (
  47.                 echo !mid1!
  48.                 >>t.x echo !mid1!
  49.                 call :delay
  50.         )
  51. )
  52. ::3.下边的棱
  53. for /l %%a in (1,1,%n%) do (
  54.         cls
  55.         type t.x
  56.         echo !down%%a!
  57.         call :delay
  58. )
  59. ::4.左边的棱
  60. for /l %%a in (1,1,%n%) do (
  61.         if %%a leq %r% (
  62.                 cls
  63.                 echo !up!
  64.                 set/a t=%r%-%%a
  65.                 for /l %%i in (1,1,!t!) do (
  66.                         echo !mid1!
  67.                 )
  68.                 for /l %%z in (1,1,%%a) do (
  69.                         echo !mid2!
  70.                 )
  71.                 echo !up!
  72.                 call :delay               
  73.         )
  74. )

  75. ::结束:
  76. del t.x
  77. pause>nul
  78. goto :eof

  79. ::函数部分:
  80. :delay
  81. for /l %%x in (1,1,%w%) do (echo Waiting...>nul)
  82. goto :eof

  83. :help
  84. echo 参数一:用于显示的字符,如*。
  85. echo 参数二:一行字符的个数,如8。
  86. echo 参数三:字符之间的延时,如500。
复制代码



[ 本帖最后由 lixiaodaoaaa 于 2008-9-29 17:11 编辑 ]
发表于 2008-9-29 18:12:24 | 显示全部楼层
呵呵,作者似乎不是未知啊
而是s11ss啊
 楼主| 发表于 2008-9-29 19:07:33 | 显示全部楼层

我不认识啊,我是随便转转看到的

我不认识啊,我是随便转转看到的
我没有罪,youxi01,不要判我刑啊。。怕怕怕
发表于 2008-12-11 16:00:12 | 显示全部楼层
相信没罪!只怕要打屁屁!^_^
发表于 2008-12-27 05:01:21 | 显示全部楼层

BUG

@echo off
color 0a
::::::::绘制矩形 {s11ss 2007-10-12}::::::::
setlocal enabledelayedexpansion
if "%1" equ "/?" (
        call :help
        echo 例如:%0 * 8 500
        goto :eof
)

::设置变量:
if "%1" equ "" (
        call :help
        echo 现在就输入参数,如* 8 500:
        set/p s=
        for /f "tokens=1,2* delims= " %%a in ("!s!") do (
                set c=%%a
                set n=%%b
                set w=%%c
        )
) else (
        set c=%1
        set n=%2
        set w=%3
)
set/a r=%n%-2
for /l %%a in (1,1,%n%) do (
        set up=!up!%c%
        for /l %%i in (1,1,%%a) do set down%%a=!down%%a!%c%
        set/a t=%n%-%%a
        ::pause
        for /l %%z in (1,1,!t!) do set down%%a= !down%%a!
        if %%a leq %r% set space%r%= !space%r%!
)
set mid1=!space%r%! %c%
set mid2=%c%!space%r%!%c%

::分四步绘制:
::1.上边的棱
for /l %%a in (1,1,%n%) do (
        cls
        echo !up:~0,%%a!
        call :delay
)
::2.右边的棱
>t.x echo !up!
for /l %%a in (1,1,%n%) do (
        if %%a leq %r% (
                echo !mid1!
                >>t.x echo !mid1!
                call :delay
        )
)
::3.下边的棱
for /l %%a in (1,1,%n%) do (
        cls
        type t.x
        echo !down%%a!
        call :delay
)
::4.左边的棱
for /l %%a in (1,1,%n%) do (
        if %%a leq %r% (
                cls
                echo !up!
                set/a t=%r%-%%a
                for /l %%i in (1,1,!t!) do (
                        echo !mid1!
                )
                for /l %%z in (1,1,%%a) do (
                        echo !mid2!
                )
                echo !up!
                call :delay               
        )
)

::结束:
del t.x
pause>nul
goto :eof

::函数部分:
:delay
for /l %%x in (1,1,%w%) do (echo Waiting...>nul)
goto :eof

:help
echo 参数一:用于显示的字符,如*。
echo 参数二:一行字符的个数,如8。
echo 参数三:字符之间的延时,如500。

输入20 就不是画框了 不知道画了个什么玩意
发表于 2008-12-30 23:10:53 | 显示全部楼层
初来乍到,回复楼主一个,
发表于 2008-12-31 09:06:31 | 显示全部楼层
看来第二个参数只能使用0-9~超出会有错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:58 , Processed in 0.019209 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表