[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. ' *==============================================================================*
  2. ' * CMD 命令行编码转换工具包括GB2312,UTF-8,Unicode,BIG5...支持拖拽、文件另保存为 *
  3. ' * CodeChange.vbs     BY: yongfa365 http://www.yongfa365.com         2007-10-04 *
  4. ' * GB2Ue.vbs          BY: fastslz   http://bbs.cn-dos.net            2007-12-03 *
  5. ' *==============================================================================*
  6. Show = "本程序仅支持GB2312到Unicode的转换,请拖拽单个要转换的文件到此文件上!    "
  7. Usage1 = "语法1:GB2Ue.vbs [驱动器][目录][文件名] (直接替换原文件模式)"
  8. Usage2 = "语法2:GB2Ue.vbs [驱动器][目录][文件名]  [目标驱动器][目录][新名称]  /Y"
  9. Usage3 = "        如果目标新文件已存在,使用/Y参数后将直接替换而不提示是否改写!  "
  10. Usage4 = "命令行编码转换工具 BY: fastslz"
  11. aCode = "GB2312"
  12. bCode = "Unicode"
  13. Set objArgs=WScript.Arguments
  14. Set fso=CreateObject("Scripting.FileSystemObject")
  15. if objArgs.Count=0 Then
  16.    MsgBox Show &vbCrLf&vbCrLf& Usage1 &vbCrLf& Usage2 &vbCrLf& Usage3, vbInformation, Usage4
  17.    Wscript.Quit
  18. end if
  19. if not objArgs.Count < 3 Then
  20.        Options="/y"
  21.        ignoring = StrComp(objArgs(2), Options, vbTextCompare)
  22.        if ignoring = 0 Then
  23.           Sourcefile=objArgs(0)
  24.           Getfile=objArgs(1)
  25.           else
  26.           MsgBox "文件数量或参数太多,拖拽批量处理请用 ANSI2Unicode.vbs     ", vbInformation, "程序意外终止"
  27.           Wscript.Quit
  28.        end if
  29.        else
  30.        if not objArgs.Count < 2 Then
  31.           Sourcefile=objArgs(0)
  32.           Getfile=objArgs(1)
  33.           if fso.FileExists(objArgs(1)) then
  34.              Choice = MsgBox ("待处理文件“"+Sourcefile+"” ==> 目标文件“"+Getfile+"”    "&vbCrLf&"目标文件已存在,是否改写现有文件?“"+objArgs(1)+"”    ",vbQuestion+vbYesNo,"是否改写")
  35.              if Choice = vbYes Then
  36.                 Getfile=objArgs(1)
  37.                 else
  38.                 Wscript.Quit
  39.              end if
  40.           end if
  41.           else
  42.           Sourcefile=objArgs(0)
  43.           Getfile=objArgs(0)
  44.        end if
  45. end if
  46. Call WriteToFile(Getfile, ReadFile(Sourcefile, aCode), bCode)
  47. Wscript.Quit
  48. Function ReadFile (Sourcefile, CharSet)
  49.     Dim Str
  50.     Set stm = CreateObject("Adodb.Stream")
  51.     stm.Type = 2
  52.     stm.mode = 3
  53.     stm.charset = CharSet
  54.     stm.Open
  55.     stm.loadfromfile Sourcefile
  56.     Str = stm.readtext
  57.     stm.Close
  58.     Set stm = Nothing
  59.     ReadFile = Str
  60. End Function
  61. Function WriteToFile (Getfile, Str, CharSet)
  62.     Set stm = CreateObject("Adodb.Stream")
  63.     stm.Type = 2
  64.     stm.mode = 3
  65.     stm.charset = CharSet
  66.     stm.Open
  67.     stm.WriteText Str
  68.     stm.SaveToFile Getfile,2
  69.     stm.flush
  70.     stm.Close
  71.     Set stm = Nothing
  72. End Function
复制代码

TOP

SBK是电子书,也就是Unicode文本文件。
GB2312转Unicode用cmd /u /c是比较方便,只是用在批处理上语法对新手来说不太容易掌握(主要是双引号“”)
  1. @echo off
  2. md Unicode 2>nul
  3. for /r %%i in (*.vbs) do cmd /u /c "type "%%i">"Unicode\%%~ni.x""
复制代码

TOP

返回列表