[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样批量排版大量TXT文件?

如题,一个文件夹下有几百个TXT文件,内容是从网上找来的一些文章,但是很多文章内部格式很乱,比如有的段落之间空很多行,有的段落之间没有空行等,现在想批量整理一下,不知用批处理怎样实现下面的功能:

1、对当前文件夹下所有TXT文件进行整理,TXT内容所有行全部顶格,行首不要有空格或缩进,

2、第一行为标题,前面如果有空格或回车符要删掉

3、所有段落之间只空一行,多于一行的删掉其他空行,原来没有空行的添加一个空行。

就是这些,不知用批处理能否实现呢?谢谢了

楼主需要提供这些文本中是否存在英文字符“^<>|:%!?&”中的哪些。
如果楼主如果没提供,那只能当他们不存在了。。。。。。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 hanyeguxing 于 2010-5-25 15:32 发表
楼主需要提供这些文本中是否存在英文字符“^|:%!?&”中的哪些。
如果楼主如果没提供,那只能当他们不存在了。。。。。。


哦,这些TXT文件里很多是包含英文字符“^|:%!?&”之类的

TOP

请在处理前先备份文件夹内的文本:
  1. @echo off
  2. for %%z in (*.txt) do (
  3. (for /f "usebackq eol=ю delims=" %%a in ("%%z") do (
  4. set a=%%a
  5. setlocal enabledelayedexpansion
  6. set a=!a:/=ч!&set a=!a:\=э!
  7. for /f "tokens=*" %%b in ("!a!") do set "a=%%~nxb"
  8. set a=!a:э=\!&set a=!a:ч=/!
  9. echo.!a!&echo.
  10. Endlocal))>$
  11. more/s <$>"%%z")
  12. del $
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

孤星兄上面的这个代码好像有问题,我运行后TXT文件没什么改变,只是在当前目录下生成了一个名为$的文件

TOP

回复 5楼 的帖子

1,变化肯定是有的,即使出错,也该是错误的变化。
2,4楼的代码使用扩展的方式删除空格,所以限制一行的字符串长度不得超过502个。超过就会产生错误,所以你的文本中行首尾没有空格制表符,可以直接
  1. @echo off
  2. for %%z in (*.txt) do (
  3. (for /f "usebackq eol=ю delims=" %%a in ("%%z") do (
  4. set a=%%a
  5. setlocal enabledelayedexpansion
  6. echo.!a!&echo.
  7. Endlocal))>$
  8. more/s <$>"%%z")
  9. del $
复制代码
这样就不会限制字符串长度到502个了。

[ 本帖最后由 hanyeguxing 于 2010-5-25 18:06 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

6楼的代码可以基本满足需求,但是如果行首有空格的话,还有办法删除空格吗?

[ 本帖最后由 zxzl 于 2010-5-25 17:57 编辑 ]

TOP

  强烈推荐“文本整理器”这个软件,你所想要的功能它全有,并且还有一些更加贴心的功能,能够批量整理,速度超快,最适合你这种情况。最新版本为3.0,2005年更新,至今仍为经典。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

原帖由 namejm 于 2010-5-25 20:45 发表
  强烈推荐“文本整理器”这个软件,你所想要的功能它全有,并且还有一些更加贴心的功能,能够批量整理,速度超快,最适合你这种情况。最新版本为3.0,2005年更新,至今仍为经典。


“文本整理器”这个软件一直在用,不过一般只是整理单个文本,批量整理功能如果文件多的话就无法使用了

TOP

  我这里可以批量整理啊,不过只能批量整理同一目录下的文件,你是不是没找对地方啊?“工具”—“批量整理”—“添加”,然后配合Ctrl或Shift键多选。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

原帖由 namejm 于 2010-5-26 11:47 发表
  我这里可以批量整理啊,不过只能批量整理同一目录下的文件,你是不是没找对地方啊?“工具”—“批量整理”—“添加”,然后配合Ctrl或Shift键多选。


呵呵,就是这个啊,文件少的话可以添加,多的话(比如超过1000个)就添加不了

TOP

返回列表