标题: [文本处理] 批处理怎样批量排版大量TXT文件? [打印本页]
作者: qscy 时间: 2010-5-25 14:51 标题: 批处理怎样批量排版大量TXT文件?
如题,一个文件夹下有几百个TXT文件,内容是从网上找来的一些文章,但是很多文章内部格式很乱,比如有的段落之间空很多行,有的段落之间没有空行等,现在想批量整理一下,不知用批处理怎样实现下面的功能:
1、对当前文件夹下所有TXT文件进行整理,TXT内容所有行全部顶格,行首不要有空格或缩进,
2、第一行为标题,前面如果有空格或回车符要删掉
3、所有段落之间只空一行,多于一行的删掉其他空行,原来没有空行的添加一个空行。
就是这些,不知用批处理能否实现呢?谢谢了
作者: hanyeguxing 时间: 2010-5-25 15:32
楼主需要提供这些文本中是否存在英文字符“^<>|:%!?&”中的哪些。
如果楼主如果没提供,那只能当他们不存在了。。。。。。
作者: qscy 时间: 2010-5-25 15:40
原帖由 hanyeguxing 于 2010-5-25 15:32 发表
楼主需要提供这些文本中是否存在英文字符“^|:%!?&”中的哪些。
如果楼主如果没提供,那只能当他们不存在了。。。。。。
哦,这些TXT文件里很多是包含英文字符“^|:%!?&”之类的
作者: hanyeguxing 时间: 2010-5-25 16:20
请在处理前先备份文件夹内的文本:- @echo off
- for %%z in (*.txt) do (
- (for /f "usebackq eol=ю delims=" %%a in ("%%z") do (
- set a=%%a
- setlocal enabledelayedexpansion
- set a=!a:/=ч!&set a=!a:\=э!
- for /f "tokens=*" %%b in ("!a!") do set "a=%%~nxb"
- set a=!a:э=\!&set a=!a:ч=/!
- echo.!a!&echo.
- Endlocal))>$
- more/s <$>"%%z")
- del $
复制代码
作者: zxzl 时间: 2010-5-25 16:29
孤星兄上面的这个代码好像有问题,我运行后TXT文件没什么改变,只是在当前目录下生成了一个名为$的文件
作者: hanyeguxing 时间: 2010-5-25 16:40 标题: 回复 5楼 的帖子
1,变化肯定是有的,即使出错,也该是错误的变化。
2,4楼的代码使用扩展的方式删除空格,所以限制一行的字符串长度不得超过502个。超过就会产生错误,所以你的文本中行首尾没有空格制表符,可以直接- @echo off
- for %%z in (*.txt) do (
- (for /f "usebackq eol=ю delims=" %%a in ("%%z") do (
- set a=%%a
- setlocal enabledelayedexpansion
- echo.!a!&echo.
- Endlocal))>$
- more/s <$>"%%z")
- del $
复制代码
这样就不会限制字符串长度到502个了。
[ 本帖最后由 hanyeguxing 于 2010-5-25 18:06 编辑 ]
作者: zxzl 时间: 2010-5-25 17:54
6楼的代码可以基本满足需求,但是如果行首有空格的话,还有办法删除空格吗?
[ 本帖最后由 zxzl 于 2010-5-25 17:57 编辑 ]
作者: namejm 时间: 2010-5-25 20:45
强烈推荐“文本整理器”这个软件,你所想要的功能它全有,并且还有一些更加贴心的功能,能够批量整理,速度超快,最适合你这种情况。最新版本为3.0,2005年更新,至今仍为经典。
作者: zxzl 时间: 2010-5-26 09:05
原帖由 namejm 于 2010-5-25 20:45 发表
强烈推荐“文本整理器”这个软件,你所想要的功能它全有,并且还有一些更加贴心的功能,能够批量整理,速度超快,最适合你这种情况。最新版本为3.0,2005年更新,至今仍为经典。
“文本整理器”这个软件一直在用,不过一般只是整理单个文本,批量整理功能如果文件多的话就无法使用了
作者: namejm 时间: 2010-5-26 11:47
我这里可以批量整理啊,不过只能批量整理同一目录下的文件,你是不是没找对地方啊?“工具”—“批量整理”—“添加”,然后配合Ctrl或Shift键多选。
作者: zxzl 时间: 2010-5-26 14:01
原帖由 namejm 于 2010-5-26 11:47 发表
我这里可以批量整理啊,不过只能批量整理同一目录下的文件,你是不是没找对地方啊?“工具”—“批量整理”—“添加”,然后配合Ctrl或Shift键多选。
呵呵,就是这个啊,文件少的话可以添加,多的话(比如超过1000个)就添加不了
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |