中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-03 14:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用批处理显示一个金字塔出来? 查看 3,275 回复 15
楼 主 如何用批处理显示一个金字塔出来? 发表于 2007-02-18 07:53 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
如何用批处理显示一个金字塔出来?

不能全用echo!


如下: *
****
********
10层的金字塔
2 发表于 2007-02-18 08:53 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
江湖远
碧空长
路茫茫

一个人漫无目的的奔跑,风,刺骨的冷....
3 发表于 2007-02-18 09:34 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
set empty=
for /l %%i in (1,1,10) do (
set empty=!empty:~1!
set str=!str!顶
echo !empty!!str!
)
pause>nul

汉字占2个字节~所以这样就可以了……但是如果把“顶”换成“*”就对7了……
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
PPdos +3 2007-02-18 12:27
anqing +8 2007-02-18 12:49
4 发表于 2007-02-18 12:49 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
漂亮,加分
5 发表于 2007-02-18 13:12 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
@echo off
setlocal enabledelayedexpansion
set empty=
for /l %%i in (1,1,10) do (
set empty=!empty:~1!
set str=!str!新
echo !empty!!str!
)
setlocal enabledelayedexpansion
set empty1=
for /l %%i in (1,1,10) do (
set empty1=!empty1:~1!
set str1=!str1!年
echo !empty1!!str1!
)
setlocal enabledelayedexpansion
set empty2=
for /l %%i in (1,1,10) do (
set empty2=!empty2:~1!
set str2=!str2!快
echo !empty2!!str2!
)
setlocal enabledelayedexpansion
set empty3=
for /l %%i in (1,1,10) do (
set empty3=!empty3:~1!
set str3=!str3!乐
echo !empty3!!str3!
)
pause>nul
学习一下
6 发表于 2007-02-18 13:14 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
呵呵,新年快乐!!
7 发表于 2007-02-18 13:17 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
希望能横排显示,正在想!有人想出来,发出来呀?
8 发表于 2007-02-18 13:37 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
set empty=
for /l %%i in (1,1,10) do (
set empty=!empty:~1!
set str1=!str1!新
set str2=!str2!年
set str3=!str3!快
set str4=!str4!乐
echo !empty!!str1!!empty!!empty!!str2!!empty!!empty!!str3!!empty!!empty!!str4!
)
pause>nul
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
anqing +8 2007-02-18 13:51
9 赞杨 发表于 2007-02-18 13:46 ·  中国 湖北 潜江 电信
高级用户
★★★
积分 894
发帖 411
注册 2007-02-17 12:15
19年会员
UID 79697
性别 男
状态 离线
太棒了
10 发表于 2007-02-18 13:52 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
好极了,希望能倒三角显示
就是把上面的,倒着显示,连在一起,字体为红色!
11 发表于 2007-02-18 14:08 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
color Fc
setlocal enabledelayedexpansion
::set empty=
set str1=新新新新新新新新新新
set str2=年年年年年年年年年年
set str3=快快快快快快快快快快
set str4=乐乐乐乐乐乐乐乐乐乐
for /l %%i in (1,1,9) do (
set empty=!empty!
set str1=!str1:~1!
set str2=!str2:~1!
set str3=!str3:~1!
set str4=!str4:~1!
echo !empty!!str1!!empty!!empty!!str2!!empty!!empty!!str3!!empty!!empty!!str4!
)
pause>nul
12 发表于 2007-02-18 14:17 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
你再看看这个吧~哈哈

@echo off
color Fc
setlocal enabledelayedexpansion
set empty=
set str1=新新新新新新新新新新
::set str2=年年年年年年年年年年
set str3=快快快快快快快快快快
::set str4=乐乐乐乐乐乐乐乐乐乐
for /l %%i in (1,1,9) do (
set empty=!empty!
set str1=!str1:~1!
set str2=!str2!年
set str3=!str3:~1!
set str4=!str4!乐
echo !empty!!str1!!str2!!str3!!str4!
)
pause>nul
13 发表于 2007-02-18 14:47 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
把你传我的,发了
@echo off
color Fc
setlocal enabledelayedexpansion
set empty=
for /l %%i in (1,1,9) do (
set empty=!empty:~1!
set str5=!str5!新
set str6=!str6!年
set str7=!str7!快
set str8=!str8!乐
echo !empty!!str5!!empty!!empty!!str6!!empty!!empty!!str7!!empty!!empty!!str8!
)
set empty1=
set str1=新新新新新新新新新
set str2=年年年年年年年年年
set str3=快快快快快快快快快
set str4=乐乐乐乐乐乐乐乐乐
for /l %%j in (1,1,8) do (
set empty1=!empty1!
set str1=!str1:~1!
set str2=!str2:~1!
set str3=!str3:~1!
set str4=!str4:~1!
echo !empty1!!str1!!empty1!!empty1!!str2!!empty1!!empty1!!str3!!empty1!!empty1!!str4!
)

pause>nul
14 发表于 2007-02-21 03:46 ·  中国 湖南 怀化 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
正金字塔一:

@echo off
set num=5
setlocal enabledelayedexpansion
for /l %%i in (1,2,10) do (
for /l %%j in (1,1,!num!) do set /p= <nul
set /a num-=1
for /l %%j in (1,1,%%i) do set /p=*<nul
echo.
)
pause

正金字塔二:

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,10) do (
set /a num=10-%%i
for /l %%j in (1,1,!num!) do set /p= <nul
for /l %%j in (1,1,%%i) do set /p=顶<nul
echo.
)
pause

倒金字塔一:

@echo off
setlocal enabledelayedexpansion
for /l %%i in (9,-2,1) do (
set /a num+=1
for /l %%j in (1,1,!num!) do set /p= <nul
for /l %%j in (1,1,%%i) do set /p=*<nul
echo.
)
pause

倒金字塔二:

@echo off
setlocal enabledelayedexpansion
for /l %%i in (10,-1,1) do (
set /a num+=1
for /l %%j in (1,1,!num!) do set /p= <nul
for /l %%j in (1,1,%%i) do set /p=顶<nul
echo.
)
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
PPdos +4 2007-02-21 09:13
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
15 发表于 2007-02-21 04:04 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
代码学习了。
论坛跳转: