您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何實現(xiàn)把首行和尾行互換的批處理,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
然后在新文本的首行寫入提取到的最后一行,用 findstr 語句過濾掉原文本的第一行和最后一行,在最后一行 之后添加提取到的第一行。
代碼如下:
@echo off
:: 目的:把首行和尾行互換
:: 思路:
:: 提取第一行和最后一行內(nèi)容(若首行和最后一行是空行,則提取到的是非空的第一行和非空的最后一行內(nèi)容),
:: 然后在新文本的首行寫入提取到的最后一行,用 findstr 語句過濾掉原文本的第一行和最后一行,在最后一行
:: 之后添加提取到的第一行。
:: 因為 findstr 處理最后一行有條件限制,所以先在最后一行之后生成一個空行,以保證提取的準確性
:: 注意:請保證test.txt中沒有敏感字符,沒有內(nèi)容重復(fù)的行,并且首行不能為空
::
::
copy test.txt test.bak>nul
echo.>>test.txt
set num=0
setlocal enabledelayedexpansion
for /f "delims=" %%i in (test.txt) do (
set str=%%i
set /a num+=1
if !num! equ 1 set var=%%i
)
>test_.txt echo.%str%
findstr /b /e /v /c:"%str%" /c:"%var%" test.txt>>test_.txt
>>test_.txt echo.%var%
move test.bak test.txt
start test_.txt
goto :eof
@echo off
:: 可以處理首行為空、行內(nèi)容重復(fù)的情況,
:: 注意:因為 findstr /n 統(tǒng)計行數(shù)的時候,會忽略最后一個空行
:: 所以,若在最后有空行的話,請保證空行的個數(shù)大于1
findstr /n .* test.txt>tmp1.txt
for /f "tokens=1* delims=:" %%i in (tmp1.txt) do (
if %%i equ 1 set str=%%j
set line=%%i&set var=%%j
)
>tmp2.txt echo %line%:%var%
findstr /b /v /c:"1:" /c:"%line%:" tmp1.txt>>tmp2.txt
echo 1:%str%>>tmp2.txt
echo.>>tmp2.txt
cd.>result.txt
for /f "tokens=1* delims=:" %%i in (tmp2.txt) do >>result.txt echo.%%j
del /q tmp1.txt tmp2.txt
start result.txt
感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何實現(xiàn)把首行和尾行互換的批處理”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。