通过bat批处理程序如何将这个文本文件的排版格式转换成另外一种形式?

需要转换的文件排版格式如下(特点是序号数目字+英语单词+英语单词的解释,由三个部分组成。序号与单词中间有个空格,英语单词与后面的解释有三个空格;序号是1到1000的任意数字):
1 would conj. 将,愿意; will 的过去式

2 cheer n. 愉快,激励,欢呼; v. 加油,鼓舞,快活起来

3 cheer on 为…加油

转换后的文件排版格式应该是:

Q:would
A:conj. 将,愿意; will 的过去式

Q:cheer
A:n. 愉快,激励,欢呼; v. 加油,鼓舞,快活起来

Q:cheer on
A:为…加油

使用批处理反而麻烦,直接使用VIM,或者notepad++等支持正则表达式的文本编辑器还来得快些。VIM的替换:

:s/\s\{2,3}/\rA./
:s/^[0-9]\s*/Q./

noteapd++中CTRL+H调出替换面板(勾选正则表达式):
第一步:
查找目标:\s\s+
替换为:___

第二步:
查找目标:[0-9]+\s+
替换为:Q.

第三步(勾选扩展):
查找目标:___
替换为:\r\nA.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-23
@echo off
for /f "tokens=2*" %%i in (a.txt) do (
echo Q:%%i>>b.txt
echo A:%%j>>b.txt
echo.>>b.txt
)
相似回答
大家正在搜