|
本帖最后由 comzhongwy 于 2016-12-21 15:28 编辑
想用bat+vbs读取C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk,但是它是UTF-8无BOM的,不能直接用,试了好多次终于搞定了,记录一下。
UTF8无BOM添加UTF8BOM.vbs
- Dim Stream,ObjXML,MyNode,BufferData,sHEX,BinaryData
- Set Stream = CreateObject("ADODB.Stream")
- Set ObjXML = CreateObject("Microsoft.XMLDOM")
- Set MyNode = ObjXML.CreateElement("binary")
- Stream.Type = 1
- MyNode.DataType = "bin.hex"
-
- Stream.Open
- Stream.LoadFromFile "1.pbk"
- MyNode.NodeTypedValue = Stream.Read
- Stream.Close
- BinaryData = MyNode.Text
-
- Stream.Open
- MyNode.Text = Replace(LCase("EF BB BF" & BinaryData), " ", "")
- Stream.Write MyNode.NodeTypedValue
- Stream.SaveToFile "1.txt", 2
- Stream.Close
- Set stream = Nothing
- Set ObjXML = Nothing
- Set MyNode = Nothing
- Wscript.Quit(0)
复制代码
UTF8无BOM转ANSI.vbs
- Dim Stream,ObjXML,MyNode,BufferData,sHEX,BinaryData
- Set Stream=CreateObject("ADODB.Stream")
- Set ObjXML=CreateObject("Microsoft.XMLDOM")
- Set MyNode=ObjXML.CreateElement("binary")
- Stream.Type=1
- Stream.Open
- Stream.LoadFromFile "C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk"
- MyNode.DataType="bin.hex"
- MyNode.NodeTypedValue=Stream.Read
- MyNode.Text=Replace(LCase("EF BB BF" & MyNode.Text),"","")
- Stream.Close
- Stream.Open
- Stream.Write MyNode.NodeTypedValue
- Stream.SaveToFile "a.txt",2
- Stream.Close
- Stream.Type=2
- Stream.mode=3
- Stream.charset="UTF-8"
- Stream.Open
- Stream.loadfromfile "a.txt"
- Str=Stream.readtext
- Stream.Close
- Stream.charset="GB2312"
- Stream.Open
- Stream.WriteText Str
- Stream.SaveToFile "a.txt",2
- Stream.flush
- Stream.Close
- Set stream=Nothing
- Set ObjXML=Nothing
- Set MyNode=Nothing
- Wscript.Quit(0)
复制代码 |
|