Board logo

标题: [网络连接] 求助批处理将多个txt文件合并为一个txt文件并转换编码为ANSI? [打印本页]

作者: zjyafei    时间: 2009-3-26 14:40     标题: 求助批处理将多个txt文件合并为一个txt文件并转换编码为ANSI?

批处理如何把指定文件下的多个txt文件另存到另一文件夹下,编码为ANSI,且合并成一个txt

因为现在我所有的txt文件编码都是为utf-8的 因为txt文件太多,我手工另存编码ANSI太慢。然后这些txt太多 我想把它合成一个txt
把指定文件下的多个txt文件另存到另一文件夹下,编码为ANSI,且合并成一个txt

请问如何标注已解决

[ 本帖最后由 zjyafei 于 2009-3-26 17:37 编辑 ]
作者: Batcher    时间: 2009-3-26 16:14

test.bat
  1. @echo off
  2. set SrcFolder=C:\test\BatHome
  3. set DstFolder=C:\test\Batcher
  4. set ResultFile="%DstFolder%\Merge.txt"
  5. for %%a in ("%SrcFolder%\*.txt") do (
  6.   UTF82ANSI.vbs "%%a" "%DstFolder%\%%~nxa"
  7. )
  8. (for %%a in ("%DstFolder%\*.txt") do (
  9.   type "%%a"
  10.   echo.
  11. ))>"%ResultFile%"
  12. start "" "%ResultFile%"
复制代码
UTF82ANSI.vbs
  1. 'UTF82ANSI
  2. aCode = "UTF-8"
  3. bCode = "GB2312"
  4. Set objArgs = WScript.Arguments
  5. FileUrlSrc = objArgs(0)
  6. FileUrlDst = objArgs(1)
  7. Call WriteToFile(FileUrlDst, ReadFile(FileUrlSrc, aCode), bCode)
  8. Function ReadFile(FileUrlSrc, CharSet)
  9.     Dim Str
  10.     Set stm = CreateObject("Adodb.Stream")
  11.     stm.Type = 2
  12.     stm.mode = 3
  13.     stm.charset = CharSet
  14.     stm.Open
  15.     stm.loadfromfile FileUrlSrc
  16.     Str = stm.readtext
  17.     stm.Close
  18.     Set stm = Nothing
  19.     ReadFile = Str
  20. End Function
  21. Function WriteToFile (FileUrlDst, Str, CharSet)
  22.     Set stm = CreateObject("Adodb.Stream")
  23.     stm.Type = 2
  24.     stm.mode = 3
  25.     stm.charset = CharSet
  26.     stm.Open
  27.     stm.WriteText Str
  28.     stm.SaveToFile FileUrlDst, 2
  29.     stm.flush
  30.     stm.Close
  31.     Set stm = Nothing
  32. End Function
复制代码
参考:VBS版文本文件编码转换工具(GB2312、UTF-8、Unicode、BIG5)
http://bbs.bathome.net/thread-3900-1-1.html
作者: zjyafei    时间: 2009-3-26 17:34     标题: 谢谢

终于解决 非常感谢 没有想过用vb转换编码
作者: Batcher    时间: 2009-3-26 17:44

//请问如何标注已解决

编辑顶楼帖子修改标题即可

删除 屏蔽 编辑 引用 已阅 报告 评分 回复





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