找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18832|回复: 4

[文本处理] [已解决]批处理怎样合并文本,边写入边按500条生成html?

[复制链接]
发表于 2011-3-2 21:41:42 | 显示全部楼层 |阅读模式
大家好 ,我又来了 ,工作原因 不得不请教各位朋友

文本有1000个  这个我只拿3个文件 来说明一下我的需求

  内容为: 每行一个词    词在5个txt内没有一个是一样的   词语的第一字不是空格
只有中间才有些有空格 无任何其他符号    暂时我用6条供测试

1.txt的内容           2.txt的内容               3.txt的内容          4txt的内容              5.txt的内容

小a游戏                  有12 3                       芝麻开花             游1200戏                 另外了12
1a 活动                   记得 11                     游戏 王               好额ee e                 恶000 劣外
c 1 活 动                 恐怖 he                     15 adddd            ekwk可靠                可渴望 棵
1小 戏                     我54有12 3                954麻开花         饿勒令0                   0恶劣了
a 活 动                     56记得 11                游2戏 王            饿了为了                 2额外恶
c 1 活 动                  恐4怖 he                  15 addd54d       额外elel 1                 饿 批4554

变成 <li>.......</li>;   为一行      class=1   大写的都是对应的文件名哦

<li><a class=1 href='x.php'>小a游戏</a><a class=2 href='x.php'>有12 3</a><a class=3 href='x.php'>芝麻开花</a><a class=4 href='x.php'>游1200戏</a><a class=5 href='x.php'>另外了12</a></li>;
<li><a class=1 href='x.php'>1a 活动</a><a class=2 href='x.php'>记得 11</a><a class=3 href='x.php'>游戏 王</a><a class=4 href='x.php'>好额ee e</a><a class=5 href='x.php'>恶000 劣外</a></li>;
<li><a class=1 href='x.php'>c 1 活 动</a><a class=2 href='x.php'>恐怖 he</a><a class=3 href='x.php'>15 adddd</a><a class=4 href='x.php'>ekwk可靠</a><a class=5 href='x.php'>可渴望 棵</a></li>;
<li><a class=1 href='x.php'>1小 戏</a><a class=2 href='x.php'>我54有12 3</a><a class=3 href='x.php'>954麻开花</a><a class=4 href='x.php'>饿勒令0</a><a class=5 href='x.php'>0恶劣了</a></li>;
<li><a class=1 href='x.php'>a 活 动</a><a class=2 href='x.php'>56记得 11</a><a class=3 href='x.php'>游2戏 王</a><a class=4 href='x.php'>饿了为了</a><a class=5 href='x.php'>2额外恶</a></li>;
<li><a class=1 href='x.php'>c 1 活 动</a><a class=2 href='x.php'>恐4怖 he</a><a class=3 href='x.php'>15 addd54d</a><a class=4 href='x.php'>额外elel 1</a><a class=5 href='x.php'>饿 批4554</a></li>;

每500条保存变成1.html  GBK的        然后从501-1000是保存到2.html的

如果读每个文件20000行  那或许某个文件就没有20000行  
没有的数据话就为空  E文件读到了最后一行没数据了   不写入代替数据 这样就好 <a class=5 href='x.php'> </a>

希望知道的朋友请帮帮我    先 谢谢了

[ 本帖最后由 w1983912 于 2011-3-3 00:27 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-3-2 23:27:21 | 显示全部楼层
纯批处理大型的文本,效率我不好说,以下代码考虑了每个文本行数都不一样的情况:
  1. @echo off&setlocal enabledelayedexpansion
  2. del /q *.html 2>nul
  3. for %%a in (1 2 3 4 5) do (
  4.     set /a n=0
  5.     for /f "delims=" %%b in (%%a.txt) do (
  6.         set /a n+=1
  7.         set "_!n!-%%a=<a class=%%a href='x.php'>%%b</a>"
  8.     )
  9.     if !max! lss !n! set /a max=n
  10. )
  11. set /a n=0
  12. for /l %%a in (1,1,%max%) do (
  13.     set "str=<li>"&set /a m=%%a%%500
  14.     if "!m!" equ "1" set /a n+=1
  15.     for %%b in (1 2 3 4 5) do (
  16.         if not defined _%%a-%%b (
  17.            set "str=!str!<a class=%%b href='x.php'></a>"
  18.            ) else (
  19.            set "str=!str!!_%%a-%%b!"
  20.          )
  21.      )
  22.      >>!n!.html echo !str!^</li^>
  23. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-3-3 00:26:53 | 显示全部楼层

回复 2楼 的帖子

很好的代码啊  呵呵      谢谢   不过单个10万条的文本都无法处理  。。。 我的天啊 。。。。。。。。。。。
这个真没办法解决

[ 本帖最后由 w1983912 于 2011-3-3 00:57 编辑 ]
发表于 2011-3-3 09:27:01 | 显示全部楼层

回复 3楼 的帖子

可以考虑使用sed、gawk等
发表于 2011-3-3 11:10:50 | 显示全部楼层
其实这样大型的数据,楼主完全可以用excel来完成(超过65536行或超过256列就请用office2007)。先将要处理的文本按顺序复制到同一个excel表格中(一个文本一列),然后在最后一列中(以最后一列为第四列为例)写下如下公式:="<li><a class="&COLUMN(A1)&" href='x.php'>"&A1&"</a><a class="&COLUMN(B1)&" href='x.php'>"&B1&"</a><a class="&COLUMN(C1)&" href='x.php'>"&C1&"</li>",点住这个单元格右下角双击,公式就会自动复制到最后一行。的当然如果列数太多(2007最多可以到16384列),这个公式可以先用批生成,这个我就不写了,相信对于楼主不是难事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:29 , Processed in 0.020235 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表