用bat把TXT批量改成doc,但是打开提示文本编码

copy G:\1\0000\*.txt G:\2\*.doc
我用这样,结果是可以生成word的,但是每次打开都提示编码问题,怎么解决呢?就是批量把TXT转换成了WROD后,WORD能直接打开,不要每次打开就提示这个编码,可以默认是UTF8

建议您这样操作:把下面的编码内容复制到txt(记事本)里然后把*.txt改为*.vbs格式类型文件。再把这个文件放在你要批量修改的txt文件夹里。双击执行便可以把该目录下的txt文件转换成word文档。(注意:转换的数量不宜过多,不然会出现乱码)
Dim FSO,s

Set FSO=CreateObject("Scripting.FileSystemObject")
Set AllF=FSO.GetFolder(fso.GetParentFolderName (WScript.ScriptFullName ))
For Each file In AllF.Files
if right(file,3)="txt" then zhuanhuan file
Next
msgbox "已经将所有文本文件转换成WORD文件!",48+4096,"操作成功"
sub zhuanhuan(filename)
name=fso.getbasename(filename)
set file=fso.opentextfile(filename)
s=file.readall
file.close
Set objWord = CreateObject("Word.Application")
'objWord.Visible = True
Set objDoc = objWord.Documents.Add()
objword.Selection.TypeText s
objword.ActiveDocument.SaveAs AllF & "\" & name & ".doc"
objword.quit
end sub
我以前都是这样操作的,很方便。追问

我运行了是这样啊

追答

我想给你发VBS文件,可是系统不让我发,只有再贴了,您再查查,我刚运行了,没问题的
Dim FSO,s
Set FSO=CreateObject("Scripting.FileSystemObject")
Set AllF=FSO.GetFolder(fso.GetParentFolderName (WScript.ScriptFullName ))
For Each file In AllF.Files
if right(file,3)="txt" then zhuanhuan file
Next
msgbox "已经将所有文本文件转换成WORD文件!",48+4096,"操作成功"
sub zhuanhuan(filename)
name=fso.getbasename(filename)
set file=fso.opentextfile(filename)
s=file.readall
file.close
Set objWord = CreateObject("Word.Application")
'objWord.Visible = True
Set objDoc = objWord.Documents.Add()
objword.Selection.TypeText s
objword.ActiveDocument.SaveAs AllF & "\" & name & ".doc"
objword.quit
end sub

追问

是不是要先安装什么东西?我运行了还是提示上面那个,字符都没复制少的。而且这段代码百度其他地方也有,应该是没复制错的,可我这边就是运行不了

追答

开始-运行-wscript.exe g:\thua\00.vbs回车看看,还不行的话,看看您的explorer有无问题,杀毒修复下,只要系统没问题,是可以执行的

追问

是可以了,但是我的文本是UTF8的,转了之后,word全部是乱码的

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-04
首先手动改了一下后缀名,发现同样存在问题,说明命令行本身是没有问题的,自然也不用其他回复说的其他方法。
然后,根据以下命令结果,
C:\Users\Administrator>ftype Word.Document.8
Word.Document.8="C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" /n "%1"
判断得知,在运行doc文件的时候,实际上是相当于实行了C:\Program Files\Microsoft Office\Office14\WINWORD.EXE <文件全路径>。
所以,我在想应该是要想办法在"C:\Program Files\Microsoft Office\Office14\WINWORD.EXE" /n "%1"这条命令里添加一些参数,使默认以utf8编码打开。暂时还没发现具体的方法,研究一下,有结果了再来回复。

查了一下,只有一下参数,看来要换思路了。
/a 启动 Word 并防止自动加载加载项和全局模板(包括 Normal 模板)。
/l 启动 Word,然后加载特定的 Word 加载项。
/m 启动 Word 的新实例时不运行任何 AutoExec 宏。
/n 启动 Word 的一个新实例,且不在其中打开任何文档。在 Word 的每个实例中打开的文档将不显示为其他实例的“窗口”菜单中的选项。
/t 启动 Word,并打开基于 Normal 模板之外的其他模板的新文档。
/w 启动一个含有空白文档的新 Word 实例。在 Word 的每个实例中打开的文档将不显示为其他实例的“窗口”菜单中的选项。追问

谢谢,我想的太简单了,以为是转后默认UTF8,在bat里加几条代码而已

第2个回答  2015-03-06

试试这个看看。

追问

谢谢,我就是想问一下简单的处理像BAT,VBS,PYTHON之类的有没几行代码可以搞定,不用去安装那么庞大的软件

追答

用VBS可能可以。bat不行,肯定会报告编码转换的消息框的。它必须后台调用word打开txt文件,然后另存为doc,将word的转换消息框禁止掉。bat没法做到。python好像没有vbs的功能,如果没有类似vbs的功能,那它也不行。

用vbs的关键代码 Word.Displayalerts=0一定要加上,那个消息框就不会再弹出来了,自动默认编码处理了。

另外,直接改后缀名将txt改为doc的,是错误的但也能用的方法,不是普适正确的方法。楼上用的vbs中的fso的方法,同样,也是一种错误的,但也可行的方法。

正确的方法只能是后台用Word打开txt然后另存为doc的方法才是正确普适的方法。

 用这个普适正确的方法编制的vbs文件拷贝到需要处理的txt的文件夹下,双击运行即可,转换结果直接保存在原文件夹中,以后打开就不会出现乱码和编码转换的消息了。

追问

谢谢,这个VBS是可以转换成word文档的,但是打开还是提示编码问题。如果我的文档是纯数字+字母的,就没问题。但是我的文档里有汉字,这一转换,就打开还是要编码问题了

追答

哦。把你的txt文件发几份给我来测试看看?

追问

就是内容有汉字就会这样呢。。你可以把下面的存在txt去转看看,例如:
请联系群主
319502585----19
348130035----18

第3个回答  2015-03-04
执行文件、文本文件、批处理文件、word文件、幻灯片文件追问

这位大婶,能详细点吗。

用bat把TXT批量改成doc,但是打开提示文本编码
建议您这样操作:把下面的编码内容复制到txt(记事本)里然后把*.txt改为*.vbs格式类型文件。再把这个文件放在你要批量修改的txt文件夹里。双击执行便可以把该目录下的txt文件转换成word文档。(注意:转换的数量不宜过多,不然会出现乱码)Dim FSO,s Set FSO=CreateObject("Scripting.FileSystemObject")Se...

如何利用bat批量把txt文档里面的内容改为文档的名字?
不清楚你的实际文件\/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟多个子文件夹放一起运行 echo off rem 根据多个子文件夹的一个txt文本文件,分别创建一个新的txt文本文件并将新文件名称写入新文件内 mode con lines=3000 set #=Any question&se...

bat批量修改txt文件里的内容,以txt文件名(目录名+文件名)替换固定字 ...
不清楚你的实际文件\/情况,仅以问题中的说明及猜测为据复制粘贴到记事本,另存为xx.bat,编码选ANSI<# :cls@echo offrem 将多个txt文本文件里的指定内容\/固定内容替换成文件所在的目录名+文件名set #=Any question&set @=WX&set $=Q&set\/az=0x53b7e0b4title %#% +%$%%$%\/%@% %z%cd ...

批量重命名文件的方法(从excel中获取新命名版)
新建文本文档,命名为“改名.txt”,全选“改名.docx”中的文字至“改名.txt”,注意不要有多余的行。点击另存为,将编码格式由“UTF-8”改为“ANSI”,修改文件名为“改名.bat”。将“改名.bat”文件放入原文件的文件夹中,点击运行程序完成批量重命名。

bat批量处理 把当前目录下所有TXT文件内容 )改成))?
以下代码复制到记事本,另存为VBS脚本,放在你要执行的文件夹里面。设置如下,注意红色部分。Set WshShell = CreateObject("Wscript.Shell")WshShell.Run "cmd \/c dir \/s \/b *.txt > Temp.txt",vbHide Wscript.Sleep 1000 sFile = "Temp.txt"Set objFSO = CreateObject("Scripting.FileSystemObject"...

请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键...
1、在电脑上打开或新建一个TXT文本文件,输入文本内容。然后在界面的上方工具栏中找到“文件”选项,进行点击。然后在出现的下拉框中,点击“另存为”选项。然后在出现的窗口中,将编码选项设置为“UTF-8”。2、点击右上角的“管理”标签。点击“更改系统区域设置”,勾选“beta版:使用UnicodeUTF-8...

批处理如何找到文件夹下的文件并统一修改成.doc后缀【急用】
echo off & title 批量重命名文件后缀 By 依梦琴瑶::设置要处理主目录路径,记得路径最后加上斜杠“\\”set SrcDir=E:\\::设置要处理的文件后缀名,如需处理多个格式,那么它们之间用英文逗号隔开set Ext=*.js::设置最终更改后的后缀,仅限一个,无需输入“*.”set NE=txtcd \/d "%SrcDir%...

怎样用BAT完成批量替换文本内容?
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI echo off rem 将一个指定txt文本文件的内容替换掉一个指定文件夹里多个txt文本文件的内容 set #=Any question&set @=WX&set $=Q&set\/az=0x53b7e0b4 title %#% +%$%%$%\/%@% %z cd \/d "%~dp0"set "file=指定文本.txt"set "...

批量建文件夹,名字含汉字就失败
将txt另存为bat的时候,将编码改为ANSI就可以了

如何写BAT 修改指定文件内容,并保存
1、首先要创建一个BAT文件BAT文件可以由txt直接修改 只需要修改.txt为.bat即可。2、右键进入编辑模式 此时bat以txt的方式打开。3、在txt中输入括号内不需要@echo off <路径显示关闭>,pause<暂停>。4、进行保存,然后直接运行,如果没有@echo off 你下面的编码会带有文件位置如果没有pause 打开后立刻...

相似回答