批处理实现文本内容居中显示的代码

所属分类: 脚本专栏 / DOS/BAT 阅读数: 453
收藏 0 赞 0 分享
a.txt  
代码:

[Promise don't come easy]
I should have known all along.
There was something wrong.
I just never read between the lines.
Then I woke up one day and found you on your way.
Leaving nothing but my heart behind.
What can I do to make it up to you.
Promises don't come easy.
But tell me if there's a way to bring you back home to stay.
Well I'd promises anything to you.
I've been walkin' around with my head hanging down.
Wondrin' what I'm gonna do.
'Cause when you walked out that door.
要求,CMD原始窗口中,不调节窗口大小,不生成临时文件,居中显示文本内容。输出如下:
代码:


[Promise don't come easy]
I should have known all along.
There was something wrong.
I just never read between the lines.
Then I woke up one day and found you on your way.
Leaving nothing but my heart behind.
What can I do to make it up to you.
Promises don't come easy.
But tell me if there's a way to bring you back home to stay.
Well I'd promises anything to you.
I've been walkin' around with my head hanging down.
Wondrin' what I'm gonna do.
'Cause when you walked out that door.

Batcher:

sed -e :a -e "s/^.\{1,77\}$/ & /;ta" a.txt

sed.exe
http://xiazai.jb51.net/201010/tools/sed_jb51.rar 

batman:思路说明:
以下代码是充分findstr命令的示例,使用findstr /n来取得行号同时兼容空行,
并将行号进行变量赋值;使用findstr /o来取得第行的字符偏移量,但要通过
上、下行的字符偏移差,因为字符偏移值是类计递加的,同时每行回车增加
两个字符偏移,所以不可避免要对最后一行强加回车,在不破坏原文件的情
况下只好生成临时文件;利用findstr /o能够一次性获得文本所有行的字符偏
移量也就是字符总数,效率和逐字符判断相比肯定是高得多了。
---------------------------------
复制代码 代码如下:

@echo off
copy /y 1.txt 2.txt>nul
echo.>>2.txt&echo end>>2.txt
for /f "tokens=1,2* delims=: " %%i in ('findstr /n /o .* 2.txt') do (
set "_%%i=%%j"&set ".%%i=%%k"
  if %%i geq 2 call :lp %%i
)
del /q 2.txt&pause>nul&goto :eof
:lp
set /a n=%1-1
set /a num=_%1-_%n%-2
set /a kl=(80-num)/2
for /l %%i in (1,1,%kl%) do set /p= <NUL
call,set /p=%%.%n%%%<NUL&ECHO.
更多精彩内容其他人还在看

Windows批处理中获取文件属性的一些方法

这篇文章主要介绍了Windows批处理中获取文件属性的一些方法,本文讲解的是使用一些特殊标记来获得文件的相关属性,需要的朋友可以参考下
收藏 0 赞 0 分享

windows7系统去除快捷方式小箭头BAT脚本分享

这篇文章主要介绍了windows7系统去除快捷方式小箭头BAT脚本分享,本文直接给出实现代码,适用Win7系统,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows系统清理QQ聊天记录、反监控QQ聊天的BAT脚本分享

这篇文章主要介绍了Windows系统清理QQ聊天记录、反监控QQ聊天的BAT脚本分享,清理QQ聊天记录的脚本是自己写的,反监控脚本转载自网上,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows系统自动连接网络共享打印机BAT脚本分享

这篇文章主要介绍了Windows系统自动连接网络共享打印机BAT脚本分享,使用本文脚本可以直接连接网络中共享的某打印机,需要的朋友可以参考下
收藏 0 赞 0 分享

Windwos下使用winscp和批处理实现通过SSH端口上传文件到Linux服务器上

这篇文章主要介绍了Windwos下使用winscp和批处理实现通过SSH端口上传文件到Linux服务器上,本文只是简易实现和一个思路,生产环境请根据需求修改代码,需要的朋友可以参考下
收藏 0 赞 0 分享

使用BAT一句话命令实现快速合并JS、CSS

这篇文章主要介绍了使用BAT一句话命令实现快速合并JS、CSS,本文使用CMD中的copy命令实现文件的合并,然后写成一个批处理文件执行,更加的方便,需要的朋友可以参考下
收藏 0 赞 0 分享

Windows下使用命令实现文件换行符替换

这篇文章主要介绍了Windows下使用命令实现文件换行符替换,本文需求比较特别,本文详细介绍了需求和解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

bat中errorlevel与%errorlevel%的区别

这篇文章主要介绍了bat中errorlevel与%errorlevel%的区别,需要的朋友可以参考下
收藏 0 赞 0 分享

CMD命令行将当前磁盘所有文件名写入到文本文件的方法

有时候我们需要将当前目录下的文件名写入到文本文件中,方便我们将内容列表分享给用户,那么就可以参考下面的代码
收藏 0 赞 0 分享

将txt文件名写入文件首行的bat代码(保留源文件)

这篇文章为大家分享了将txt文件名写入文件首行的bat代码并且保留源文件,方便整理一些txt文档
收藏 0 赞 0 分享
查看更多