[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
以前的代码,翻出来小改一下,凑合着能用
  1. Dim fso, objFile, strExt, strFolder
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. For Each objFile in fso.GetFolder(".").Files
  4.     strExt = fso.GetExtensionName(objFile.Path)
  5.     strExt = LCase(strExt)
  6.     If strExt = "txt" Or strExt = "html" Or strExt = "htm" Then
  7.         strFolder = GetEncodingType(objFile.Path)
  8.         If Not fso.FolderExists(strFolder) Then
  9.             fso.CreateFolder(strFolder)
  10.         End If
  11.         objFile.Move strFolder & "\"
  12.     End If
  13. Next
  14. MsgBox "Success!"
  15. Function GetEncodingType(file)
  16.     Dim ado, bom, i, arr(), n
  17.     Set ado = CreateObject("ADODB.Stream")
  18.     ado.Mode = 3
  19.     ado.Type = 1
  20.     ado.Open
  21.     ado.LoadFromFile file
  22.     For i = 1 To 3
  23.         bom = bom & Hex(AscB(ado.Read(1)))
  24.     Next
  25.     If InStr(bom, "FFFE") Or InStr(bom, "FEFF") Then
  26.         GetEncodingType = "UNICODE"
  27.     ElseIf bom = "EFBBBF" Then
  28.         GetEncodingType = "UTF8"
  29.     Else
  30.         ado.Position = 0
  31.         n = ado.Size - 1
  32.         ReDim arr(n)
  33.         For i = 0 to n
  34.             arr(i) = ChrW(AscB(ado.Read(1)))
  35.         Next
  36.         If IsUtf8(Join(arr, "")) Then
  37.             GetEncodingType = "UTF8NOBOM"
  38.         Else
  39.             GetEncodingType = "ANSI"
  40.         End If
  41.     End If
  42.     ado.Close
  43.     Set ado = Nothing
  44. End Function
  45. Function IsUtf8(ByRef str)
  46.     Dim s, reg
  47.     s = "[\xC0-\xDF]([^\x80-\xBF]|$)"
  48.     s = s & "|[\xE0-\xEF].{0,1}([^\x80-\xBF]|$)"
  49.     s = s & "|[\xF0-\xF7].{0,2}([^\x80-\xBF]|$)"
  50.     s = s & "|[\xF8-\xFB].{0,3}([^\x80-\xBF]|$)"
  51.     s = s & "|[\xFC-\xFD].{0,4}([^\x80-\xBF]|$)"
  52.     s = s & "|[\xFE-\xFE].{0,5}([^\x80-\xBF]|$)"
  53.     s = s & "|[\x00-\x7F][\x80-\xBF]"
  54.     s = s & "|[\xC0-\xDF].[\x80-\xBF]"
  55.     s = s & "|[\xE0-\xEF]..[\x80-\xBF]"
  56.     s = s & "|[\xF0-\xF7]...[\x80-\xBF]"
  57.     s = s & "|[\xF8-\xFB]....[\x80-\xBF]"
  58.     s = s & "|[\xFC-\xFD].....[\x80-\xBF]"
  59.     s = s & "|[\xFE-\xFE]......[\x80-\xBF]"
  60.     s = s & "|^[\x80-\xBF]"
  61.     Set reg = New RegExp
  62.     reg.Pattern = s
  63.     IsUtf8 = Not reg.Test(str)
  64.     Set reg = Nothing
  65. End Function
复制代码
1

评分人数

    • xp3000: 这个VBS能用技术 + 1

TOP

返回列表