如何用批处理给文本首行、空行、每行增加文字?

例:当前文件夹有一个“花名册.txt”的文本,内容是:
花名册
登记者:蚂蚁

王二
张三
李四
周五

郑六
刘七
...
贵求一个批处理文件,实现以下功能:
1、给第一行行首行尾增加文字;
2、给第二行行首行尾增加文字;
3、给第三行,及所有空行增加文字;
4、再增加一个行首、行尾的文字。
最终这个文本修改为:
北京六中(这里是新增的行首)
··花名册··
##登记者:蚂蚁##
一年级一班(这里原来是空行)
aa 王二 bb
aa 张三 bb
aa 李四 bb
aa 周五 bb
一年级一班(这里原来是空行)
aa 郑六 bb
aa 刘七 bb
...
登记时间(这是新增行尾)
我知道怎样给文本每行增加文字,而这个不同的是要先指定前三行,并给空行增加文字,请高手提供一个这样的批处理文件,谢谢!

第1个回答  2009-03-25
@echo off
SetLocal EnableDelayedExpansion
>花名册.txt echo 花名册
>>花名册.txt echo 登记者:蚂蚁
>>花名册.txt echo.
>>花名册.txt echo 王二
>>花名册.txt echo 张三
>>花名册.txt echo 李四
>>花名册.txt echo 周五
>>花名册.txt echo.
>>花名册.txt echo 郑六
>>花名册.txt echo 刘七
>>花名册.txt echo ...

>花名册_New.txt echo 北京六中(这里是新增的行首)
for /f "tokens=1,* delims=:" %%i in ('findstr /n .* "花名册.txt"') do (
set "var=%%j"
if defined var (>>花名册_New.txt echo aa !var! bb) else (>>花名册_New.txt echo 一年级一班(这里原来是空行))
)
>>花名册_New.txt echo 登记时间 %date% %time%
第2个回答  2009-03-25
可是这个意识?似乎与第三行没什么关系。
先备份源文件。。。
@echo off&setlocal enabledelayedexpansion
echo 北京六中>c.txt
(for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
set /a n+=1
if "%%b"=="" (echo 一年级一班) else (
if !n! equ 1 (echo ·· %%b ··) else (
if !n! equ 2 (echo ## %%b 蚂蚁 ##) else (echo %%b bb)
))))>>c.txt
>>c.txt echo 登记时间 %date% %time:~0,5%
move /y "c.txt" "a.txt"
start "" "a.txt"本回答被提问者采纳
相似回答