Board logo

标题: [文本处理] [已解决]怎么用批处理实现TXT转HTML? [打印本页]

作者: 398832385    时间: 2011-5-16 22:46     标题: [已解决]怎么用批处理实现TXT转HTML?

研究了一下HTML的标准格式


要让TXT转为HTML,需要如下条件:


1.文件的第一行加上:<html><body><span>
   文件的最后一行加上:</span></body></html>
2.中间每行最后加上:<br>
3.当两个文字中间的空格超过1格时,则把此文字到下个文字间的空格替换成:&nbsp;
4.把txt文件的后缀换成html



希望有能力的高手来帮帮忙!!!!!


另外我在百度贴吧也求助了~有个高手给了代码,但是出现了很多问题~~~你可以做下参考~
地址:http://tieba.baidu.com/f?kz=1074397246



.
作者: Batcher    时间: 2011-5-17 01:49

  1. sed "$!s/^/<br>/;s/ /\&nbsp;/g;1s/^<br>/<html><body><span>\n/;$s/$/\n<\/span><\/body><\/html>/" 1.txt | more >1.html
复制代码
http://bbs.bathome.net/thread-3981-1-1.html
作者: techon    时间: 2011-5-17 02:36

不如用html 的预格式化标记
  1. <pre>
  2. 此处是文本内容:
  3. this is bathome,
  4. hello, im here
  5. good bye
  6. </pre>
复制代码

作者: 398832385    时间: 2011-5-18 15:19

3# techon


呵呵~谢谢你~这个格式我试了~ 编译以后确实可以支持搜索了!
作者: 398832385    时间: 2011-5-18 15:20

2# Batcher


我试了~存在很多问题~~~~ 不过还是谢谢你了!!!
作者: CrLf    时间: 2011-5-18 16:03

按照3楼的办法,批量转换:
  1. @echo off
  2. for %%a in (*.txt) do (
  3.    echo ^<pre^>
  4.    type "%%a"
  5.    echo ^</pre^>
  6. )>"%%~na.htm"
复制代码

作者: 398832385    时间: 2011-5-18 16:05

不如用html 的预格式化标记

此处是文本内容:
this is bathome,
hello, im here
good bye


techon 发表于 2011-5-17 02:36



对了····这个批处理应该怎么写啊???   
1.在文本首行加上<pre>
            末行加上</pre>
2.把文本后缀变为html
作者: 398832385    时间: 2011-5-18 16:07

本帖最后由 398832385 于 2011-5-18 16:12 编辑

6# zm900612


呵呵~~~你的头像好搞笑啊~~~~

我试了你给的批处理~  无效~~~ 生成的HTM文件里只有
<pre>
</pre>

文字都没有了·····
=========================
对不起···是我搞错了~ 可以用~不过我发现了一个小缺点·····
最后的 </pre> 在最后1行文字后,而不是独立的最后一行····

比如:(-----间为内容)
------------------
123
321

123545
------------------

转后为:

------------------
<pre>
123
321

123545</pre>

------------------
作者: CrLf    时间: 2011-5-18 17:33

那把type换成more就行了:
  1. @echo off
  2. for %%a in (*.txt) do (
  3.    echo ^<pre^>
  4.    more "%%a"
  5.    echo ^</pre^>
  6. )>"%%~na.htm"
复制代码

作者: 398832385    时间: 2011-5-18 17:48

9# zm900612


OH YEAH~ 可以了!!!谢谢大家的帮助!!!!
对了~我有点疑问·~~~为什么每次对文本操作以后,最后1行都会留一个空行?
作者: CrLf    时间: 2011-5-18 18:01

因为用的是echo,不想换行可以改用set /p
  1. @echo off
  2. for %%a in (*.txt) do (
  3.    echo ^<pre^>
  4.    more "%%a"
  5.    set /p=^</pre^><nul
  6. )>"%%~na.htm"
复制代码

作者: Batcher    时间: 2011-5-18 23:37

5# 398832385


什么问题?




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2