Board logo

标题: [求助]如何在批处理文件中排版 [打印本页]

作者: IceCrack     时间: 2006-7-13 14:39    标题: [求助]如何在批处理文件中排版
在写一些批处理文件时,不知道怎么处理排版问题。
如运行批处理,怎么样才能使显示的文字居中呢? 不会是计算出来后狂按空格吧
还有就是

╭────────╮
╭─────────┤选择要备份的文件├─────────╮
│ ╰────────╯ │
│ │
│ 本程序能把指定文件在指定时间内备份到指定位 │
│ │
│ 置。请把要备份的文件(或文件夹)拖曳至本窗口(推荐 │
│ │
│ 做法),或者手工输入需要备份文件的绝对路径或相对 │
│ │
│ 路径(请勿输入非法的路径名符号),然后回车确认。 │
│ │
│ 自动完成文件名请按Tab\Shift+Tab,可多次选择。 │
│ │
│ 为了不错误删除数据,使用本软件前请阅读注意 │
│ │
│ 事项!切记切记! (恢复文件请按 R ) │
│ │
╰────────────────────────────╯
这样类似图形的外框是如何做出来的啊。

作者: electronixtar     时间: 2006-7-13 15:37
最好按全角的空格,要整齐一点

作者: 3742668     时间: 2006-7-13 16:23

不会是计算出来后狂按空格吧

这个应该是最简单的方法。。。
不过,如果想要自己计算,也不是不可以:

@echo off
echo 输入宽度和高度:
echo 例如: 3 3
set /p s=
call :update %s%
pause
goto :eof

:update
setlocal ENABLEDELAYEDEXPANSION

if %1 geq 40 echo 太宽了! && goto :eof

rem 以下两句计算每一行前面应该留出的空格数
set /a began = (40 - %1) / 2
for /l %%i in (1,1,%began%) do set str=!str! 

rem 以下两句计算第一行╭与╮之间"─"的数量
set /a num = %1 - 2
for /l %%i in (1,1,%num%) do set str1=!str1!─

rem 显示第一行
echo %str%╭%str1%╮

rem 保存最后一行
set str2=%str%╰%str1%╯

rem 显示除了第一行和最后一行的中间的行
set str1=%str1:─= %
for /l %%i in (1,1,%2) do echo %str%│%str1%│

echo %str2% & rem 显示最后一行
endlocal
goto :eof

作者: IceCrack     时间: 2006-7-13 22:00
有没有排版工具呢? 如图形类的。我一般都是把他用AnsiEditor2.03c
那么针对批处理的,或者是dos窗口的应该有一个合适的排版的吧