Board logo

标题: [文本处理] doc文件不转换成txt能直接提取里面的内容重命名文件名吗? [打印本页]

作者: yhcbird    时间: 2011-1-26 08:42     标题: doc文件不转换成txt能直接提取里面的内容重命名文件名吗?

本帖最后由 pcl_test 于 2016-9-14 00:12 编辑

比如说:有一个doc文件叫做“新建 Microsoft Word 文档.doc”文件,
“新建 Microsoft Word 文档.doc”内容:
                  中华人民共和国行政处罚条例
                          199X年X月X日
第一条  。。。。。。。。。。。。。。。。。。
第二条 。。。。。。。。。。。。。。。。。。等
现在不想通过doctotext.exe这些第三方软件转换成txt文件然后在进行文本操作,想直接根据doc文件里面的内容把doc文件名改成:“中华人民共和国行政处罚条例199x年x月x日.doc” 的这样用纯批有可能实现吗???

用doctotext.exe转换后的txt文件,我很开心的就写了下面的代码,然后一按,奶奶的 在处理转换后的txt文件时会出现乱码。悲剧了。这个是什么原因啊:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.doc) do (
  4. doctotext "%%a">"%%~na.txt" 这里处理的文本正常的
  5. for /f "delims=" %%j in ('findstr /n .* %%~na.txt') do (echo %%j >>5.txt) ::这里的5.txt乱码
  6. for /f "tokens=2 delims=:" %%i in ('findstr /r "1 2" 5.txt') do (
  7. set "var=!var!%%i")
  8. ren "%%a" "!var!.doc"
  9. )
  10. del 5.txt
  11. 未完成
复制代码
在此之间我加了删除空行的代码。上面没写。。。

[ 本帖最后由 yhcbird 于 2011-1-26 13:42 编辑 ]
作者: yhcbird    时间: 2011-1-26 10:20

如果不能用纯批,大家有没有稍微简洁版的doc转txt的命令行工具,我的是这样的:
里面辅助文件太多了。
作者: Batcher    时间: 2011-1-26 12:47

可以调用VBS来读取doc文件的内容

VBS对Office软件Word、Excel等的操作实例
http://bbs.bathome.net/thread-5868-1-1.html
作者: yhcbird    时间: 2011-1-26 13:41

vbs完全看不懂。。更加的悲剧。。。英文看不懂- -

[ 本帖最后由 yhcbird 于 2011-1-26 14:08 编辑 ]
作者: Batcher    时间: 2011-1-26 15:21

doctotext生成的是文本文件是UTF-8编码,批处理无法直接识别。
作者: yhcbird    时间: 2011-1-26 15:33

用ConCmd.exe转换吗?编码GB2312
其实我的主要目的很简单,就是把doc文件拖到批处理进去实现doc文件名改成doc文件里面内容标题的名字。但是如果我用上面的方法,即使成功了貌似效率也很低。。

[ 本帖最后由 yhcbird 于 2011-1-26 16:15 编辑 ]
作者: yhcbird    时间: 2011-1-26 16:57

在网上找1个根据标题自动重命名的vbs代码。这里跟大家分享一下。
  1. set fso=createobject("scripting.filesystemobject")
  2. set folder=fso.getfolder(".")
  3. set files=folder.files
  4. for each file in files
  5. if lcase(right(file,3))="doc" then
  6. a=1
  7. Set objWord = CreateObject("Word.Application")
  8. Set objDoc = objWord.Documents.Open(cstr(file))
  9. wjm=objDoc.Paragraphs(1).Range
  10. objWord.Quit
  11. if file.name <> replace(wjm,vbcr,"") & ".doc" then createobject("wscript.shell").run "cmd /c ren " & chr(34) & file.name & chr(34) & " " & chr(34) & wjm & ".doc" & chr(34),0
  12. end if
  13. next
  14. if a=1 then
  15. msgbox "操作成功!",4096,"提示"
  16. else
  17. msgbox "对不起,没有在【" & folder & "】下找到WORD文件",4096,"提示"
  18. end if
复制代码


但是这个代码有点小问题。有些文件会出错。我不知道是什么原因。因为对vbs不懂。。大家帮忙测试下。。。

[ 本帖最后由 yhcbird 于 2011-1-26 16:58 编辑 ]




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