• 横竖两个数字塔的效果BAT批处理怎么写?


    横竖两个数字塔的效果BAT批处理怎么写?
    @echo off
    for /l %%a in (0,1,1) do (
            for /l %%i in (0,1,9) do (
            for /l %%j in (0,1,%%i) do set /p=%%j<nul
            echo=
            )
    )
    pause

    我这个BAT可以竖下来输出2个数字塔,
    0
    01
    012
    0123
    01234
    012345
    0123456
    01234567
    012345678
    0123456789
    0
    01
    012
    0123
    01234
    012345
    0123456
    01234567
    012345678
    0123456789
    如果我想达到如下图的格式,横向的效果要怎么写呢?
    0          0
    01         01
    012        012
    0123       0123
    01234      01234
    012345     012345
    0123456    0123456
    01234567   01234567
    012345678  012345678
    0123456789 0123456789
    ---------------------------------------------------------------------
    回复 1# battab
    @echo off&setlocal enabledelayedexpansion
    set "space=          "
    for /l %%i in (0,1,9) do (
            set/a n=10-%%i,m=%%i-1
            for %%z in (!n!) do set t=!space:~,%%z!
            for /l %%j in (0,1,!m!) do set /p=%%j<nul
            set/p=%%i!t!<nul
            for /l %%j in (0,1,%%i) do set /p=%%j<nul
            echo,
    )
    pause
    ---------------------------------------------------------------------
    @echo off & setlocal enabledelayedexpansion
    for /l %%i in (0 1 9) do set "sp=!sp! "
    for /l %%i in (0 1 9) do (
        set "s="
        for /l %%j in (0 1 %%i) do set "s=!s!%%j"
        set "str=!s!!sp!"
        echo,!str:~,11!!s!
    )
    pause
    ---------------------------------------------------------------------
    继续发另类解:
    @echo off
    %1 cmd /v /c @%0 :|more /t11&pause&exit

    for /f "delims=U" %%a in ('cmd /u /c echo 唉') do set "tab=%%a"
    for /l %%a in (0 1 9) do set str=!str!%%a&echo !str!!tab!!str!
    ---------------------------------------------------------------------
    这个好 mark一下 留着用.
    学习了..
    ---------------------------------------------------------------------
    这样简化
    @echo off&setlocal enabledelayedexpansion
    for /l %%i in (0 1 9) do set "sp=!sp! "
    for /l %%i in (0 1 9) do (
        set "str=!str!%%i"
        echo !str!!sp:~%%i!!str!
    )
    pause
    ---------------------------------------------------------------------
    我也给个自己写的,把第二个for的参数改下,横向的可以打印1,2,3,4,5,6........个数字塔
    @echo off
    for /l %%i in (0,1,9) do (
    for /l %%j in (0,1,1) do (
    for /l %%k in (0,1,10) do (
    if %%k leq %%i (set /p =%%k<nul) else (set /p = <nul)
    )
    )
    echo.
    )
    echo.
    ----------------------------------------------------------------
    参考:http://bathome.net/thread-28624-1-2.html

  • 相关阅读:
    Maven(二)Maven项目的创建(命令、myeclipse)及生命周期
    Maven(一)初识Maven
    MySQL(十一)之触发器
    MySQL(十)之视图
    MySQL(九)之数据表的查询详解(SELECT语法)二
    MySQL(九)之数据表的查询详解(SELECT语法)一
    关于oracle的锁表解决session marked for kill
    shell脚本清空redis库缓存
    Java 数组拷贝方法 System.arraycopy
    oracle 替换字符 replace
  • 原文地址:https://www.cnblogs.com/mq0036/p/3540433.html
Copyright © 2020-2023  润新知