把首行和尾行互換的批處理
更新時(shí)間:2009年05月11日 12:39:11 作者:
提取第一行和最后一行內(nèi)容(若首行和最后一行是空行,則提取到的是非空的第一行和非空的最后一行內(nèi)容)
然后在新文本的首行寫入提取到的最后一行,用 findstr 語句過濾掉原文本的第一行和最后一行,在最后一行 之后添加提取到的第一行。
@echo off
:: 目的:把首行和尾行互換
:: 思路:
:: 提取第一行和最后一行內(nèi)容(若首行和最后一行是空行,則提取到的是非空的第一行和非空的最后一行內(nèi)容),
:: 然后在新文本的首行寫入提取到的最后一行,用 findstr 語句過濾掉原文本的第一行和最后一行,在最后一行
:: 之后添加提取到的第一行。
:: 因?yàn)?findstr 處理最后一行有條件限制,所以先在最后一行之后生成一個(gè)空行,以保證提取的準(zhǔn)確性
:: 注意:請(qǐng)保證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ù)的情況,
:: 注意:因?yàn)?findstr /n 統(tǒng)計(jì)行數(shù)的時(shí)候,會(huì)忽略最后一個(gè)空行
:: 所以,若在最后有空行的話,請(qǐng)保證空行的個(gè)數(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
復(fù)制代碼 代碼如下:
@echo off
:: 目的:把首行和尾行互換
:: 思路:
:: 提取第一行和最后一行內(nèi)容(若首行和最后一行是空行,則提取到的是非空的第一行和非空的最后一行內(nèi)容),
:: 然后在新文本的首行寫入提取到的最后一行,用 findstr 語句過濾掉原文本的第一行和最后一行,在最后一行
:: 之后添加提取到的第一行。
:: 因?yàn)?findstr 處理最后一行有條件限制,所以先在最后一行之后生成一個(gè)空行,以保證提取的準(zhǔn)確性
:: 注意:請(qǐng)保證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ù)的情況,
:: 注意:因?yàn)?findstr /n 統(tǒng)計(jì)行數(shù)的時(shí)候,會(huì)忽略最后一個(gè)空行
:: 所以,若在最后有空行的話,請(qǐng)保證空行的個(gè)數(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
相關(guān)文章
CMD下讀取/修改/刪除注冊(cè)表項(xiàng)的方法
先說注冊(cè)表。很多命令行下訪問注冊(cè)表的工具都是交互式的,溢出產(chǎn)生的shell一般不能再次重定向輸入/輸出流,所以無法使用2012-06-06Windwos下使用winscp和批處理實(shí)現(xiàn)通過SSH端口上傳文件到Linux服務(wù)器上
這篇文章主要介紹了Windwos下使用winscp和批處理實(shí)現(xiàn)通過SSH端口上傳文件到Linux服務(wù)器上,本文只是簡(jiǎn)易實(shí)現(xiàn)和一個(gè)思路,生產(chǎn)環(huán)境請(qǐng)根據(jù)需求修改代碼,需要的朋友可以參考下2014-12-12編程用到的windows系統(tǒng)目錄變量簡(jiǎn)寫
windows系統(tǒng)目錄變量在編程時(shí)會(huì)經(jīng)常用到,本文提供了簡(jiǎn)寫對(duì)比,方便使用,需要了解的朋友可以參考下2012-12-12使用批處理實(shí)現(xiàn)軟件的自動(dòng)安裝以安裝搜狗拼音為例
軟件的自動(dòng)安裝我們可以通過使用批處理實(shí)現(xiàn),下面以安裝搜狗拼音為例做個(gè)小實(shí)驗(yàn),其他軟件可以參考此例,具體的實(shí)現(xiàn)如下,喜歡的朋友不要錯(cuò)過2013-11-11批處理一鍵關(guān)閉高危有害端口完整版(適合服務(wù)器使用)
把下面的內(nèi)容復(fù)制到記事本 保存為 文件名.bat 雙擊運(yùn)行即可,不過使用過程中最好是本地先測(cè)試,注意遠(yuǎn)程端口問題2013-02-02服務(wù)器應(yīng)用自動(dòng)重新啟動(dòng)IIS批處理
本站原創(chuàng)的用bat實(shí)現(xiàn)重新啟動(dòng)服務(wù)器的IIS服務(wù)器2008-01-01