溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用批處理實(shí)現(xiàn)文本內(nèi)容居中顯示

發(fā)布時(shí)間:2021-09-30 09:25:19 來(lái)源:億速云 閱讀:199 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了怎么用批處理實(shí)現(xiàn)文本內(nèi)容居中顯示,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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原始窗口中,不調(diào)節(jié)窗口大小,不生成臨時(shí)文件,居中顯示文本內(nèi)容。輸出如下:
代碼:


[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:思路說(shuō)明:
以下代碼是充分findstr命令的示例,使用findstr /n來(lái)取得行號(hào)同時(shí)兼容空行,
并將行號(hào)進(jìn)行變量賦值;使用findstr /o來(lái)取得第行的字符偏移量,但要通過(guò)
上、下行的字符偏移差,因?yàn)樽址浦凳穷愑?jì)遞加的,同時(shí)每行回車增加
兩個(gè)字符偏移,所以不可避免要對(duì)最后一行強(qiáng)加回車,在不破壞原文件的情
況下只好生成臨時(shí)文件;利用findstr /o能夠一次性獲得文本所有行的字符偏
移量也就是字符總數(shù),效率和逐字符判斷相比肯定是高得多了。
---------------------------------

代碼如下:


@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.

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么用批處理實(shí)現(xiàn)文本內(nèi)容居中顯示”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI