标题: [文本处理] 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文件时会出现乱码。悲剧了。这个是什么原因啊:- @echo off
-
- setlocal enabledelayedexpansion
- for %%a in (*.doc) do (
-
- doctotext "%%a">"%%~na.txt" 这里处理的文本正常的
-
- for /f "delims=" %%j in ('findstr /n .* %%~na.txt') do (echo %%j >>5.txt) ::这里的5.txt乱码
- for /f "tokens=2 delims=:" %%i in ('findstr /r "1 2" 5.txt') do (
- set "var=!var!%%i")
-
- ren "%%a" "!var!.doc"
-
- )
-
- del 5.txt
-
- 未完成
复制代码
在此之间我加了删除空行的代码。上面没写。。。
[ 本帖最后由 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代码。这里跟大家分享一下。- set fso=createobject("scripting.filesystemobject")
- set folder=fso.getfolder(".")
- set files=folder.files
- for each file in files
- if lcase(right(file,3))="doc" then
- a=1
- Set objWord = CreateObject("Word.Application")
- Set objDoc = objWord.Documents.Open(cstr(file))
- wjm=objDoc.Paragraphs(1).Range
- objWord.Quit
- 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
- end if
- next
-
- if a=1 then
- msgbox "操作成功!",4096,"提示"
- else
- msgbox "对不起,没有在【" & folder & "】下找到WORD文件",4096,"提示"
- end if
复制代码
但是这个代码有点小问题。有些文件会出错。我不知道是什么原因。因为对vbs不懂。。大家帮忙测试下。。。
[ 本帖最后由 yhcbird 于 2011-1-26 16:58 编辑 ]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |