中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 01:26
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 无聊跟风:竖向排版方式发帖之批处理版 查看 898 回复 6
楼 主 无聊跟风:竖向排版方式发帖之批处理版 发表于 2008-07-08 00:52 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
type nul>b.txt
set test=最近看到网上有人喜欢用竖向排版方式发帖,感觉很有意思,就写了一个批处理排版,与大家分享。有时间的话,我希望自己能够继续完善这个批处理。
set rows=10
set clos=10
set /a tmpclos=%clos%*2-1
set header=╔
set footer=╚
for /l %%a in (1,1,%tmpclos%) do (
set /a flag=%%a%%2
if !flag! == 1 (
set header=!header!═
set footer=!footer!═
) else (
set header=!header!╤
set footer=!footer!╧
)
)
set header=!header!╗
set footer=!footer!╝
echo !header!>>b.txt
for /l %%a in (1,1,%rows%) do (
set curclo=0
set row=║
for /l %%b in (1,1,%clos%) do (
set /a curclo+=1
set /a cut=%clos%-%%b
set /a cut=!cut!*%rows%+%%a-1
call set char=%%test:~!cut!,1%%
if "!char!" equ "" (
set row=!row! 
) else (
set row=!row!!char!
)
if !curclo! lss %clos% (
set row=!row!│
)
)
echo !row!║>>b.txt
)
echo !footer!>>b.txt


╔═╤═╤═╤═╤═╤═╤═╤═╤═╤═╗
║ │ │ │善│我│家│一│感│用│最║
║ │ │ │这│希│分│个│觉│竖│近║
║ │ │ │个│望│享│批│很│向│看║
║ │ │ │批│自│。│处│有│排│到║
║ │ │ │处│己│有│理│意│版│网║
║ │ │ │理│能│时│排│思│方│上║
║ │ │ │。│够│间│版│,│式│有║
║ │ │ │ │继│的│,│就│发│人║
║ │ │ │ │续│话│与│写│帖│喜║
║ │ │ │ │完│,│大│了│,│欢║
╚═╧═╧═╧═╧═╧═╧═╧═╧═╧═╝
本帖最近评分记录 (共 4 条) 点击查看详情
评分人分数时间
pusofalse +3 2008-07-08 08:42
bat-zw +9 2008-07-08 14:46
PPdos +7 2008-07-08 19:15
523066680 +8 2008-08-20 09:02
2 发表于 2008-07-08 08:42 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
高。。。^_^
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
3 发表于 2008-07-08 11:07 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
呵呵,我也跟个风。。。

@echo off&setlocal enabledelayedexpansion
set str=最近看到网上有人喜欢用竖向排版方式发帖,感觉很有意思,就写了一个批处理排版,与大家分享。有时间的话,我希望自己能够继续完善这个批处理。 
for /l %%i in (1 1 10) do (
for /l %%a in (3 2 21) do set "h%%i.%%a=│"
set h%%i.21=║&set "h%%i.1=║"
)
for /l %%a in (20 -2 2) do (
for /l %%i in (1 1 10) do (
if defined str (
set h%%i.%%a=!str:~0,1!
set str=!str:~1!
) else set "h%%i.%%a= "
))
echo ╔═╤═╤═╤═╤═╤═╤═╤═╤═╤═╗
for /l %%i in (1 1 10) do (
for /l %%a in (1 1 21) do set /p=!h%%i.%%a!<nul
echo.
)
echo ╚═╧═╧═╧═╧═╧═╧═╧═╧═╧═╝
pause>nul


[ Last edited by 26933062 on 2008-7-8 at 11:13 AM ]
致精致简!
4 发表于 2008-07-08 13:50 ·  中国 安徽 合肥 联通
初级用户
★★
积分 175
发帖 55
注册 2007-04-30 07:15
19年会员
UID 87008
性别 男
状态 离线
3楼的代码更简练
5 发表于 2008-07-08 13:56 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
其实开始我是想动态生成列的数目,所以写的复杂了,呵呵,哪天心血来潮的时候再改写。
6 发表于 2008-07-08 14:46 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
我认为重要的不是技巧,而是思路,HAT兄加油!!!
批处理之家新域名:www.bathome.net
7 发表于 2008-07-08 15:13 ·  IANA 局域网IP(Private-Use)
初级用户
积分 65
发帖 29
注册 2008-03-24 12:17
18年会员
UID 113853
性别 男
状态 离线
┌─┬─┬─┬─┬─┬─┬─┬─┐
│ ┆ ┆ ┆ ┆ ┆。┆,┆非│
│ ┆ ┆ ┆ ┆ ┆学┆非┆常│
│ ┆ ┆ ┆ ┆ ┆习┆常┆强│
│ ┆ ┆ ┆ ┆ ┆中┆巧┆大│
│ ┆ ┆ ┆ ┆ ┆。┆妙┆的│
│ ┆ ┆ ┆ ┆ ┆ ┆的┆批│
│ ┆ ┆ ┆ ┆ ┆ ┆思┆处│
│ ┆ ┆ ┆ ┆ ┆ ┆路┆理│
└─┴─┴─┴─┴─┴─┴─┴─┘
论坛跳转: