横竖两个数字塔的效果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

posted on   jack_Meng  阅读(821)  评论(0编辑  收藏  举报

编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩